redimensionar
-resize 400x300+20+30(como os exemplos -scalee -sampleabaixo) 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:
-resizesuporta 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 400x300cria 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 Lanczosque é 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 pointproduz (que usa o mais próximo regra do vizinho para determinar a cor de pixels recém-adicionados).
amostra
-sample 400x300converte 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:
-samplenão suporta a configuração adicional de -filter; se definido de qualquer maneira, -filterserá 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 -samplenã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
-resampleusa como parâmetro a XxY resolução desejada , não a geometria de XxYpixel 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 -densityna linha de comando antes de especificar a -resampleresolução.
escala
-scale 400x300produz 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 -filterconfiguraçã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 400x300não suporta (ou ignora, se definido) a parte de deslocamento de um parâmetro de geometria e também ignora a -gravityconfiguraçã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
-thumbnailfunciona exatamente como -resize, com algumas diferenças:
A seguinte resposta mostra alguns exemplos (ilustrados!) Da -resizediretiva. Cada ilustração mostra um resultado diferente, dependendo dos 'pequenos detalhes' do método de redimensionamento exato: