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.