Converter Imagemagick com opção de resample

2

Estou criando miniaturas de imagens muito maiores e uso esse comando com sucesso há algum tempo:

convert FILE -resize "64x" -crop "64x64+0+16" +repage -strip OUTFILE

Também faço outro processamento que não é relevante para a pergunta. Percebi que isso não ajusta a resolução, então, se eu usar uma imagem de 300dpi, ela acaba exibindo um tamanho muito pequeno em alguns dispositivos. Eu quero fazer uma nova amostra para 72x72, então eu tenho tentado com este comando:

convert FILE -resize "64x" -crop "64x64+0+16" +repage -strip -resample 72x72 OUTFILE

E esperávamos que a imagem de 64 x 64 em 300 dpi fosse reamostrada para uma imagem de 64 x 64 em 72 dpi, mas, em vez disso, estou obtendo um tamanho e uma densidade muito engraçados.



Aqui está a saída "identificar" para o arquivo original e pós-processado SEM a nova amostra:

coneybeare $ convert "aa.jpg" -crop "64x64+0+16" +repage -strip "aa.png"
coneybeare $ for image in 'find . -type f'; do identify $image; identify -verbose $image | egrep "^  Resolution"; done
./aa.jpg JPEG 1130x1695 1130x1695+0+0 8-bit DirectClass 1.492MiB 0.000u 0:00.000
  Resolution: 300x300
./aa.png PNG 64x64 64x64+0+0 8-bit DirectClass 7.46KiB 0.000u 0:00.000
  Resolution: 118.11x118.11

E aqui está a "saída de identificação para o comando WITH the resample:

coneybeare $ convert "aa.jpg" -crop "64x64+0+16" +repage -strip -resample 72x72 "aa.png"
coneybeare $ for image in 'find . -type f'; do identify $image; identify -verbose $image | egrep "^  Resolution"; done
./aa.jpg JPEG 1130x1695 1130x1695+0+0 8-bit DirectClass 1.492MiB 0.000u 0:00.000
  Resolution: 300x300
./aa.png PNG 15x15 15x15+0+0 8-bit DirectClass 901b 0.000u 0:00.000
  Resolution: 28.34x28.34





Então, a pergunta é: O que estou fazendo errado e como posso corrigi-lo para que o resultado final seja uma imagem em miniatura cortada em 64x64 a 72dpi?

    
por coneybeare 18.04.2010 / 21:01

1 resposta

1

Você deu uma olhada na seção de miniaturas gerais do Serviço de uso do Magic Image ? É muito bom. Os exemplos geralmente usam a opção thumbnail . De Gerar miniaturas em geral :

This not only resizes the image, but strips any and all profile and comment information that may be present in the original JPEG image. Also as it uses the "-sample" resize operator for the initial downsizing of the image, it is reasonably fast, and produces good results for small thumbnails.

Você está colocando algum tipo de borda em torno dessas imagens? Além disso, há um operador de geometria "novo" em IM, ^ , o sinalizador de área de preenchimento :

As of IM v6.3.8-3 IM now has a new geometry option flag '^' which is used to resize the image based on the smallest fitting dimension. That is, the image is resized to completely fill (and even overflow) the pixel area given.

Então você pode tentar:

convert FILE-64x64 ^ -gravity center -extent 64x64 + 0 + 16 -strip OUTFILE

    
por 19.04.2010 / 06:12