Forçar o GraphicsMagick a redimensionar a imagem para uma largura específica

Forçar o GraphicsMagick a redimensionar a imagem para uma largura específica

Estou processando em lote uma pasta de imagem para uma largura uniforme com GraphicsMagick (embora eu assuma que o mesmo se aplicaria ao ImageMagick):

$ gm convert -resize 1000x in.jpg out.jpg

Mas quando inspeciono algumas das imagens, recebo 999pxem vez de 1000px.

$ gm identify -verbose out.jpg

==> Image: out.jpg
==> Format: JPEG (Joint Photographic Experts Group JFIF format
==>   Geometry: 999x591

Existe uma maneira de impor a largura correta? Presumo que esteja fazendo algumas estimativas para preservar as proporções.

Responder1

Descobrindo isso, você usa um ponto de exclamação para impor o tamanho eleito. DeDocumentos do GraphicsMagick:

Acrescente um ponto de exclamação à geometria para forçar o tamanho da imagem exatamente ao tamanho que você especificou. Por exemplo, se você especificar 640x480! a largura da imagem é definida como 640 pixels e a altura como 480.

Então, a partir do exemplo acima:

$ gm convert -resize 1000x! in.jpg out.jpg

Isso resulta em uma imagem com exatamente 1000 pixels de largura:

$ gm identify -verbose out.jpg

==> Image: out.jpg
==> Format: JPEG (Joint Photographic Experts Group JFIF format
==>   Geometry: 1000x591

informação relacionada