ImageMagick - Réduire les tailles de fichiers

ImageMagick - Réduire les tailles de fichiers

Une belle et grande image est à peu près géniale; il s'accompagne généralement d'une qualité énorme. Cependant, il y en a beaucoup, plusieurs fois où vous ne pouvez pas vous permettre d'avoir des photos de taille trop grande. Parfois, tout ce que vous voulez est une image de taille décente ou même une image inférieure à une taille donnée particulière. Dans de tels cas, tout ce que le programmeur souhaite est un moyen de trouver un terrain d'entente entre la qualité et la taille. Théoriquement, si vous abandonnez complètement la qualité, la taille du fichier ne devrait pas être un problème, mais la vraie affaire consiste à trouver un compromis entre la qualité et la taille du fichier. Dans ce tutoriel, nous discuterons des moyens de réduire la taille du fichier des images en utilisant ImageMagick (sans trop compromettre la qualité).

Installation d'imageMagick

Nous aurons besoin d'imageMagick pour cela, alors d'abord, installons-le:

sudo apt-get install ImageMagick

Le commutateur de qualité

Le premier moyen le plus simple de réduire la taille d'une photo / image / vidéo est de réduire la qualité de la photo. Le commutateur de qualité représente le niveau de compression JPEG / MIFF / PNG. Pour JPEG et MPEG, une qualité de 1 représente le plus haut niveau de compression et la qualité d'image la plus basse, tandis que 100 représente le moins de compression et la meilleure qualité.

Regardons donc un exemple; La photo que j'ai prise d'un arbre est de 4624 × 3468 en termes de résolution et est 5.70226mib. C'est l'image originale, un jpeg, pour être spécifique.


Maintenant, le fait est que nous voulons réduire la taille de l'image. Alors essayons de définir les paramètres de commutateur de qualité sur quelque chose d'un peu différent et de voir ce qui se passe.

Convertir Tree_4624x3468.jpg -quality 75 arbre_4624x3468_quality75.jpg
Convertir Tree_4624x3468.jpg -quality 25 arbre_4624x3468_quality25.jpg



J'ai réduit la qualité à 75 pour une image et 25 pour une autre. L'image originale était 5.70226mib, mais l'image qui était une qualité de 75 est devenue 2.74664mib tandis que celui de la qualité 25 est devenu 1358250 (1.295mib). Ici, j'irais personnellement avec la qualité de 75%.

Maintenant, puisque nous nous soucions également de la qualité réelle de la photo, permettez-moi de vous montrer les photos:


Tree_4624x3468_quality75.jpg


Tree_4624x3468_quality25.jpg

Comme vous pouvez le voir, la qualité n'a pas été trop affectée, mais la taille du fichier est plus petite.

Maintenant, j'ai essayé de faire de même avec PNG, et c'est ce que j'ai obtenu:


Donc, il est passé de 23501600B (22.413mib) à 22.2854mib. Pour un jpeg, il est passé de 5.70226mib à 1.295mib. Pour les formats non lassés tels que PNG, le commutateur de qualité est beaucoup plus difficile.

Redimensionnement des images

Le redimensionnement des images est une autre façon. Par exemple:

Convertir Tree_4624x3468.JPG -Resize 50% x50% arbre_4624x3468_resize50%.jpg



Comme vous pouvez le voir clairement, l'image qui était de 4624 × 3468 était 5.70226mib, tandis que celui qui était 2312 × 1734 n'est que 1.56287mib.

L'interrupteur définit

L'interrupteur Define est suivi d'une clé et de sa valeur donnée.

-Définir la clé = valeur…

La liste des valeurs de clés possibles peut être trouvée sur https: // imageMagick.org / script / définit.php.

Pour PNG, vous pouvez utiliser PNG: au niveau de la compression = valeur. La valeur peut être de 0 à 9. Une valeur de 0 vous fournira le moins de compression, mais c'est rapide, et une valeur de 9 vous fournira la meilleure compression mais est la plus lente. Tout entre les deux va aussi.

Par exemple:

Convertir Tree_4624x3468.png -define png: au niveau de la compression = 9 arbre_4624x3468_compression9.PNG



Dans la plupart des cas, ce qu'un programmeur veut, c'est régler une taille maximale pour une photo. Donc, supposons pour une instance que vous souhaitez définir une taille maximale pour une photo. Vous pouvez utiliser le commutateur Define pour ce faire.

-définir jpeg: extension = size

Convertir Tree_4624x3468.JPG -DEFINE JPEG: Extension = 1MB Tree_4624x3468_Extent1MB.jpg



Comme vous pouvez le voir dans l'image ci-dessus, il l'a réglé sur une résolution de 4624 × 3468 et une taille de 0.897mib. Ainsi, comme vous l'avez demandé, ImageMagick a créé une photo inférieure à la taille maximale de 1 Mo.

Interrupteur de bandes

Les photos que nous prenons avec les caméras sont livrées avec des métadonnées. La suppression des métadonnées peut également éliminer un certain espace. Dans ImageMagick, nous le faisons en utilisant le commutateur de bande.

Convertir Tree_4624x3468.jpg -strip arbre_strip.jpg



Ici, comme vous pouvez le voir, la photo originale est 4624 × 3468 et 5.7 mib. Mais l'image qui a fait dépouiller ses métadonnées est 4.65mib.

Interrupteur d'espace couleurs

Vous pouvez également essayer de changer l'espace couleurs. Dans ce premier cas, je vais le rendre gris.

Convertir Tree_4624x3468.JPG -Colorspace Gray Tree_Gray.JPG -Quality 75



Comme vous pouvez le voir, la réduction de la taille de l'image n'est pas trop grande, mais il y a une réduction - de 5.70226mib à 4.44997mib.

Alternativement, j'ai également essayé ce qui suit:

Convertir Tree_4624x3468.PNG -Colorspace Gray Tree_Graypng.PNG



Dans le cas d'un PNG, ma photo originale, c'est 4624 × 3468, est 22.42mib, mais quand je le tourne gris, il devient 8.88 mib.

Commutation des couleurs

Vous pouvez également choisir de modifier le nombre de couleurs utilisées. Dans ce cas particulier, je vais utiliser seulement 16 couleurs sur un PNG.

Convertir Tree_4624x3468.PNG -Colors 16 Tree_4624x3468_16Colors.PNG



Le PNG d'origine était de 4624 × 3468 et 22.42 mib. Cependant, lorsque j'ai changé les couleurs en seulement 16, l'image est devenue 4.27mib en taille. Et la photo ressemble à ceci:


Tree_4624x3468_16Colors.PNG

En utilisant plusieurs commutateurs

Maintenant, vous n'avez pas besoin d'utiliser un seul interrupteur sur une photo! Vous pouvez combiner autant d'interrupteurs que vous le souhaitez sur une image.

Donc, dans l'exemple 1, je vais prendre une photo PNG d'un arbre. Cette photo originale est 4624 × 3468 et 22.42mib en taille, et je vais utiliser plusieurs commutateurs et voir où ça me mène.

Convertir Tree_4624x3468.PNG -Strip -resize 75% x75% -define PNG: au niveau de la compression = 9 -Colorspace Gray Tree_4624x3468_RedOedSize.PNG



Donc ce PNG, avec une taille d'origine de 22.42mib, transformé en une image de 5.3mib. L'image résultante est d'environ 23% de la taille d'origine.

Alors ensuite, vérifions un jpg.

Convertir Tree_4624x3468.JPG -Quality 75 -Resize 75% x75% -Strip -Colors 16 Tree_4624x3468_redSize.jpg



Donc, ici, pour le JPG, nous sommes passés d'une taille d'origine de 5.7mib à environ 2.2mib pour une image colorée.

Mais s'il n'était pas coloré:

Convertir Tree_4624x3468.JPG -Quality 75 -Resize 75% x75% -Strip -Colorspace Gray Tree_4624x3468_redSize.jpg



Ici, nous sommes passés d'une taille d'origine de 5.7mib à 1.6mib pour une image grise.

Si vous l'aviez voulu, vous auriez pu fixer une limite maximale sur la taille aussi. Le fait est que vous pouvez réduire la taille si vous vous définissez vraiment votre esprit.

Conclusion

Lors de l'écriture de code dans un but particulier, nous avons également tendance à utiliser des images, et parfois, nous ne pouvons tout simplement pas nous permettre d'avoir des photos de taille trop grande. Dans de tels cas, l'objectif principal du programmeur est de trouver un compromis entre la taille de l'image et la qualité de l'image. Nous ne voulons pas utiliser des images de qualité trop faible, mais nous ne pouvons pas nous permettre d'avoir des images de grande taille. Nous avons donc besoin de moyens de réduire la taille de l'image. ImageMagick propose une variété de façons de réduire la taille de votre image sous la forme de divers commutateurs - qualité, redimensionner, définir, etc. Vous pouvez en utiliser un ou plusieurs pour ajuster la taille de l'image.