Miniaturas quadradas com o ImageMagick (convert)?

28

Como criar miniaturas quadradas / cortadas usando o ImageMagick? Recorte como abaixo.

    
por marioosh 26.04.2011 / 10:17

6 respostas

15

Isso é explicado na documentação oficial do ImageMagick, em “Cortar a miniatura para caber” :

An alternative, is rather than pad out the image to fit the specific thumbnail size we want, is to instead cut off the parts of the image that does not fit the final size.

Of course this means you actually lose some parts of the original image, particularly the edges of the image, but the result is a enlarged thumbnail of the center part of the image. This is usually (but not always) the main subject of the image, so it is a practical method of thumbnail creation.

As of IM v6.3.8-3 the special resize option flag '^' was added to make this easier. We just resize using this flag then crop off the parts of the image that overflows the desired size.

E no contexto de um exemplo de comando:

convert -define jpeg:size=200x200 hatching_orig.jpg  -thumbnail 100x100^ \
          -gravity center -extent 100x100  cut_to_fit.gif
    
por 26.04.2011 / 10:33
46

Ignacio está vinculado à documentação correta, mas vou colá-lo aqui por conveniência:

convert -define jpeg:size=200x200 original.jpeg  -thumbnail 100x100^ -gravity center -extent 100x100  thumbnail.jpeg

Da mesma forma, o seguinte é para GraphicsMagick:

gm convert -size 200x200 original.jpeg -thumbnail 100x100^ -gravity center -extent 100x100 +profile "*" thumbnail.jpeg

Explicação:

  • -size 200x200 informa ao decodificador jpeg que precisamos apenas dessa resolução para economizar memória e ler a imagem de origem mais rapidamente
  • -thumbnail 100x100^ redimensionar rapidamente tornando o lado mais curto 100
  • - gravity center centra a próxima operação
  • -extent 100x100 aplica a imagem a uma tela de 100 x 100
  • +profile "*" não salva nenhum metainfo no jpeg (tornando a imagem resultante menor)
por 15.12.2011 / 01:02
9

Essa é uma maneira mais simples de fazer isso:

O seguinte comando redimensiona o lado menor para 100 pixels e corta um quadrado de 100x100. Você pode adicionar um comando -strip para reduzir o tamanho do arquivo.

convert original.jpg -resize "100^>" -gravity center \ 
                     -crop 100x100+0+0 -strip thumbnail.jpg

Ao contrário de outros, não está tentando economizar memória. Em vez disso, faz o que você quer, e não mais. Além disso, não vai melhorar as imagens.

    
por 31.05.2014 / 07:29
2

Estou usando a graphicsmagick para gerar miniaturas de tamanho preciso, mas estou preenchendo a imagem com um tabuleiro de xadrez em vez de cortar a saliência.

gm convert -limit Threads 1 -size 320x180 pattern:checkerboard -background transparent -gravity center -resize 320x180 -extent 320x180 original.jpg -flatten -resize 112x65! -interlace Line 1 thumb_112x65.jpg

Opções explicadas.

gm convert

// Single threaded seems faster on smaller files
-limit Threads 1 

// Generate a checkerboard of size 320x180.
// Sets the relative size of the checkerboard squares,
// also sets the desired aspect ratio. In my case (16:9)
-size 320x180 pattern:checkerboard 

// Resize the input image and center it on a transparent layer.
-background transparent -gravity center -resize 320x180 -extent 320x180 orig.jpg

// Merge the layers
-flatten 

// Resize the output to the desired
// The ! causes the aspect ratio to be ignored, fixing any rounding errors.
// (Specify a size with the same aspect ratio as the checkerboard.)
-resize 112x65! 

// Use Progressive JPEG Encoding
-interlace Line 

// Output Image
thumb_112x65.jpg
    
por 24.06.2013 / 16:41
1

Acho que você está procurando algo como:

convert -crop 100x100+50+50 input_image.jpg output_image.jpg 

em que 100x100 é o tamanho do retângulo final e 50x50 o deslocamento .

    
por 26.04.2011 / 10:28
1

Este comando corta para um quadrado e redimensiona para 150x150

convert 824-full.jpg -set option:size '%[fx:min(w,h)]x%[fx:min(w,h)]' xc:none +swap -gravity center -composite -resize 150x150  temp.jpg

Mais opções estão disponíveis aqui: link

    
por 22.08.2013 / 11:39