redimensionar
-resize 400x300+20+30
(como os exemplos -scale
e -sample
abaixo) converte uma imagem de entrada em uma imagem de saída que tem as dimensões de pixel de 400x300
. Ele também muda a saída em 20 pixels para a direita e em 30 pixels para a parte inferior. Além disso, existem mais algumas diferenças para -scale
:
-resize
suporta uma configuração adicional de -filter
(que deve ocorrer na linha de comando antes de usar -resize
!).
-filter
determina o algoritmo exato a ser usado para as cores dos pixels adicionados no caso de ampliação, ou para as cores a serem usadas para os pixels restantes quando alguns de seus vizinhos são removidos em caso de minificação.
Para obter uma lista de filtros compatíveis, basta executar convert -list filter
.
-filter point -resize 400x300
cria exatamente o mesmo resultado -sample 400x300
, mas ainda é um pouco mais lento.
Se não for definido ao lado (antes) -resize
, a conversão será silenciosamente padronizada para -filter Lanczos
que é mais lenta, mas que gera uma qualidade muito melhor (porque leva em conta as cores de todos os pixels circundantes para qualquer um recém-adicionado) do que -filter point
produz (que usa o mais próximo regra do vizinho para determinar a cor de pixels recém-adicionados).
amostra
-sample 400x300
converte uma imagem de entrada em uma imagem de saída que tem as dimensões de pixel de 400x300
. No entanto, existem algumas diferenças muito importantes para -resize
:
-sample
não suporta a configuração adicional de -filter
; se definido de qualquer maneira, -filter
será simplesmente ignorado.
Ao ampliar (porque o tamanho da imagem de entrada pode ser menor que 400x300
), os pixels são replicados em blocos.
Ao minimizar (porque o tamanho da imagem de entrada pode ser maior que 400x300
), os pixels são sub-amostrados com um algoritmo muito simples: algumas linhas e colunas são simplesmente ignoradas.
O argumento geometry para -sample
não suporta nenhuma parte de deslocamento (ao contrário -resize
, que respeita as diretivas de deslocamento para a saída).
A saída nunca terá mais cores (diferentes) do que a imagem de entrada tinha; ele pode ter menos cores.
Portanto, -sample
é muito rápido (mais rápido do que -resize
) - mas a qualidade da saída é (geralmente) pior: você pode obter facilmente efeitos de bloqueio e aliasing extremos na saída resultante.
Uma característica importante do -sample
é que a nova imagem não conterá novas cores, embora algumas cores da imagem original possam desaparecer.
redimensionamento
-resample
usa como parâmetro a XxY
resolução desejada , não a geometria de XxY
pixel da imagem alvo. O objetivo deste operador é preservar o tamanho renderizado de uma imagem: suponha que sua imagem mede 4 polegadas por 3 polegadas em um dispositivo que a renderiza a 300 DPI. Em seguida, pedir ou irá redimensionar a imagem para que ela meça (novamente) 4 polegadas por 3 polegadas em um dispositivo de 72 DPI.-resample 72
-resample 72x72
Esta operação funciona apenas para imagens que já tenham uma resolução desejada armazenada em seus metadados (nem todos os formatos de imagem suportam o conceito de resolução de imagem - JPEG, PNG e TIFF o fazem).
Se a imagem de origem estiver em um formato em que o suporte interno para uma resolução de imagem estiver faltando, a resolução original (assumida) da imagem deve ser especificada -density
na linha de comando antes de especificar a -resample
resolução.
escala
-scale 400x300
produz o resultado equivalente (mas é mais rápido, porque evita todo o processamento do filtro) como o usa -filter box -resize 400x300
. Ele também ignora completamente qualquer -filter
configuração atual .
Ao minimizar, ele altera o tamanho da imagem simplesmente substituindo as cores de pixel, fazendo a média das respectivas cores de pixel de entrada juntas.
Ao ampliar, ele simplesmente replica os respectivos pixels de entrada para os pixels adicionais necessários.
adaptive-resize
-adaptive-resize 400x300
não suporta (ou ignora, se definido) a parte de deslocamento de um parâmetro de geometria e também ignora a -gravity
configuração, se presente.
- Ele usa, por padrão, a triangulação dependente de dados ao redimensionar (a menos que o método de redimensionamento seja substituído pela especificação adicional
-filter [something]
).
miniatura
-thumbnail
funciona exatamente como -resize
, com algumas diferenças:
A seguinte resposta mostra alguns exemplos (ilustrados!) Da -resize
diretiva. Cada ilustração mostra um resultado diferente, dependendo dos 'pequenos detalhes' do método de redimensionamento exato: