ImageMagick - Reduzindo tamanhos de arquivo

ImageMagick - Reduzindo tamanhos de arquivo

Uma foto bonita e grande é ótima; geralmente é acompanhado por uma tremenda qualidade. No entanto, há muitas, muitas vezes em que você não pode se dar ao luxo de ter fotos muito grandes em tamanho. Às vezes, tudo o que você deseja é uma imagem de tamanho decente ou até mesmo que seja menor que um tamanho específico,. Nesses casos, todos os desejos do programador são uma maneira de encontrar um meio termo entre qualidade e tamanho. Teoricamente, se você desistir completamente da qualidade, o tamanho do arquivo não deve ser um problema, mas o negócio real é encontrar um compromisso entre a qualidade e o tamanho do arquivo. Neste tutorial, discutiremos maneiras de reduzir o tamanho do arquivo de imagens usando o ImageMagick (sem comprometer a qualidade demais).

Instalando o ImageMagick

Precisamos do ImageMagick para isso, então primeiro, vamos instalá -lo:

sudo apt-get install imagemagick

O interruptor de qualidade

A primeira e mais fácil maneira de reduzir o tamanho de uma foto/imagem/vídeo é reduzir a qualidade da foto. O interruptor de qualidade representa o nível de compressão JPEG/MIFF/PNG. Para JPEG e MPEG, uma qualidade de 1 representa o nível mais alto de compressão e a menor qualidade de imagem, enquanto 100 representa o menor nível de compressão e a melhor qualidade.

Então, vejamos um exemplo; A imagem que tirei de uma árvore é 4624 × 3468 em termos de resolução e é 5.70226mib. Esta é a imagem original, um jpeg, para ser específico.


Agora, o ponto é que queremos reduzir o tamanho da imagem. Então, vamos tentar definir as configurações do interruptor de qualidade para algo um pouco diferente e ver o que acontece.

Converta Tree_4624x3468.JPG -Qualia 75 Tree_4624x3468_quality75.jpg
Converta Tree_4624x3468.JPG -Qualia 25 Tree_4624x3468_quality25.jpg



Eu reduzi a qualidade para 75 para uma foto e 25 para outra. A imagem original era 5.70226mib, mas a imagem que era uma qualidade de 75 se tornou 2.74664mib enquanto o da qualidade 25 se tornou 1358250 (1.295mib). Aqui, eu pessoalmente iria com a qualidade de 75%.

Agora, como também nos preocupamos com a qualidade real da foto, deixe -me mostrar as fotos:


Tree_4624x3468_quality75.jpg


Tree_4624x3468_quality25.jpg

Como você pode ver, a qualidade não foi muito afetada, mas o tamanho do arquivo é menor.

Agora, tentei fazer o mesmo com o PNG, e foi isso que eu consegui:


Então, passou de 23501600b (22.413mib) a 22.2854mib. Para um JPEG, passou de 5.70226mib a 1.295mib. Para formatos não perdidos, como o PNG, o interruptor de qualidade é muito mais difícil.

Redimensionar fotos

Redimensionar fotos é outra maneira. Por exemplo:

Converta Tree_4624x3468.JPG -Resize 50% x50% Tree_4624x3468_Resize50%.jpg



Como você pode ver claramente, a imagem que era 4624 × 3468 foi 5.70226mib, enquanto o que era 2312 × 1734 é apenas 1.56287mib.

O interruptor define

O interruptor define é seguido por uma chave e seu valor determinado.

-Defina a chave = value…

A lista de possíveis valores -chave pode ser encontrada em https: // imagemagick.org/script/define.php.

Para PNG, você pode usar PNG: Nível de compactação = valor. O valor pode ser qualquer coisa de 0 a 9. Um valor de 0 fornecerá a você a menor compressão, mas é rápido, e um valor de 9 fornecerá a melhor compressão, mas é o mais lento. Qualquer coisa no meio também vai.

Por exemplo:

Converta Tree_4624x3468.PNG -Defin PNG: Nível de compressão = 9 Tree_4624x3468_compression9.png



Na maioria dos casos, o que um programador deseja é definir um tamanho máximo para uma foto. Então, suponha para uma instância que você deseja definir um tamanho máximo para uma foto. Você pode usar o interruptor Definir para fazer isso.

-Definir jpeg: extensão = size

Converta Tree_4624x3468.jpg -define jpeg: extensão = 1MB TREE_4624X3468_EXTENT1MB.jpg



Como você pode ver na figura acima, ele a definiu para uma resolução de 4624 × 3468 e um tamanho de 0.897mib. Então, como você solicitou, o ImageMagick criou uma foto menor que o tamanho máximo de 1 MB.

Interruptor de tira

Fotos que tiramos com câmeras vêm com metadados. Remover os metadados também pode esclarecer algum espaço. Em ImageMagick, fazemos isso usando o interruptor.

Converta Tree_4624x3468.JPG -Strip Tree_Strip.jpg



Aqui, como você pode ver, a foto original é 4624 × 3468 e 5.7mib. Mas a imagem que teve seus metadados despojados é 4.65mib.

Switch Colorspace

Você também pode tentar alternar o espaço de cores. Nesta primeira instância, vou ficar cinza.

Converta Tree_4624x3468.JPG -Colorspace Gray Tree_gray.JPG -Qualia 75



Como você pode ver, a redução do tamanho da imagem não é muito grande, mas há uma redução - de 5.70226mib a 4.44997MIB.

Como alternativa, eu também tentei o seguinte:

Converta Tree_4624x3468.png -Colorspace Gray Tree_graypng.png



No caso de um PNG, minha foto original, que é 4624 × 3468, é 22.42mib, mas quando eu o fico cinza, torna -se 8.88mib.

Interruptor de cores

Você também pode optar por alterar o número de cores usadas. Nesse caso em particular, vou usar apenas 16 cores em um png.

Converta Tree_4624x3468.png -Colors 16 Tree_4624x3468_16Colors.png



O PNG original era 4624 × 3468 e 22.42mib. No entanto, quando mudei as cores para apenas 16, a imagem se tornou 4.27mib em tamanho. E a foto fica assim:


Tree_4624x3468_16Colors.png

Usando vários comutadores

Agora, você não precisa usar um único interruptor em uma foto! Você pode combinar quantos interruptores quiser em uma foto.

Então, no Exemplo 1, vou tirar uma foto de uma árvore PNG. Esta foto original é 4624 × 3468 e 22.42mib em tamanho, e eu vou usar vários interruptores e ver onde isso me leva.

Converta Tree_4624x3468.PNG -STRIP -Resize 75% x75% -Define PNG: Nível de compressão = 9 -Colorspace Gray Tree_4624x3468_ReducedSize.png



Então este PNG, com um tamanho original de 22.42mib, transformado em uma foto de 5.3mib. A imagem resultante é de cerca de 23% do tamanho original.

Então, em seguida, vamos conferir um jpg.

Converta Tree_4624x3468.JPG -Qualia 75 -Resize 75% x75% -STRIP -COLORS 16 TREE_4624X3468_REDUDEDSIZE.jpg



Então, aqui, para o JPG, passamos de um tamanho original de 5.7mib a cerca de 2.2mib para uma imagem colorida.

Mas se não fosse colorido:

Converta Tree_4624x3468.JPG -Qualia 75 -Resize 75% x75% -Strip -Colorspace Gray Tree_4624x3468_ReducedSize.jpg



Aqui, passamos de um tamanho original de 5.7mib a 1.6mib para uma imagem cinza.

Se você quisesse, você também poderia definir um limite máximo para o tamanho. O ponto é que você pode reduzir o tamanho se realmente definir sua mente para ele.

Conclusão

Ao escrever código para um específico propósito, tendemos a usar fotos também e, às vezes, não podemos nos dar ao luxo de ter fotos muito grandes em tamanho. Nesses casos, o foco principal do programador é encontrar um compromisso entre o tamanho da imagem e a qualidade da imagem. Não queremos usar fotos muito baixas em qualidade, mas também não podemos nos dar ao luxo de ter fotos de tamanho grande. Então, precisamos de maneiras de reduzir o tamanho da imagem. ImageMagick oferece várias maneiras de reduzir o tamanho da sua imagem na forma de vários interruptores - qualidade, redimensionar, definir, etc. Você pode usar um ou mais deles para ajustar o tamanho da imagem.