ImageMagick – Réduction de la taille des fichiers

Imagemagick Reduction De La Taille Des Fichiers



Une belle et grande image est à peu près géniale; il est généralement accompagné d'une qualité exceptionnelle. Cependant, il arrive très souvent que vous ne puissiez pas vous permettre d'avoir des images trop grandes. Parfois, tout ce que vous voulez, c'est une image de taille décente ou même une image inférieure à une taille donnée. Dans de tels cas, tout ce que souhaite le programmeur est un moyen de trouver un juste milieu 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 le vrai problème est de trouver un compromis entre la qualité et la taille du fichier. Dans ce didacticiel, nous discuterons des moyens de réduire la taille du fichier des images à l'aide d'ImageMagick (sans trop compromettre la qualité).

Installation d'ImageMagick

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







sudo apt-get install magie de l'image



Le commutateur de qualité

La première et la plus simple façon 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 niveau de compression le plus élevé et la qualité d'image la plus faible, tandis que 100 représente le niveau de compression le plus bas et la meilleure qualité.



Alors regardons un exemple; la photo que j'ai prise d'un arbre est de 4624 × 3468 en termes de résolution et de 5,70226 Mo. C'est l'image originale, un JPEG, pour être précis.






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

convertir tree_4624x3468.jpg -qualité 75 arbre_4624x3468_quality75.jpg
convertir tree_4624x3468.jpg -qualité 25 arbre_4624x3468_quality25.jpg



J'ai réduit la qualité à 75 pour une photo et 25 pour une autre. L'image d'origine était de 5,70226 Mo, mais l'image de qualité 75 est devenue 2,74664 Mo tandis que celle de qualité 25 est devenue 1358250 (1,295 Mo). Ici, j'irais personnellement avec la qualité de 75%.



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


arbre_4624x3468_quality75.jpg


arbre_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 la même chose avec PNG, et voici ce que j'ai obtenu :


Ainsi, il est passé de 23501600B (22.413MiB) à 22.2854MiB. Pour un JPEG, il est passé de 5,70226 Mo à 1,295 Mo. Pour les formats sans perte tels que PNG, le changement de qualité est beaucoup plus difficile.

Redimensionner les images

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

convertir tree_4624x3468.jpg -redimensionner cinquante % x50 % tree_4624x3468_resize50 % .jpg



Comme vous pouvez le voir clairement, l'image qui était de 4624 × 3468 était de 5,70226 MiB, tandis que celle qui était de 2312 × 1734 n'était que de 1,56287 MiB.

Le commutateur de définition

Le commutateur de définition est suivi d'une clé et de sa valeur donnée.

-définir clé{=valeur}…

La liste des valeurs clés possibles se trouve à l'adresse .

Pour PNG, vous pouvez utiliser png:compression-level=value. La valeur peut être comprise entre 0 et 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 ce qui se trouve entre les deux va aussi.

Par exemple:

convertir tree_4624x3468.png -définir png:compression-level= 9 arbre_4624x3468_compression9.png



Dans la plupart des cas, ce qu'un programmeur veut, c'est définir une taille maximale pour une photo. Supposons donc, pour une instance, que vous souhaitiez définir une taille maximale pour une photo. Vous pouvez utiliser le commutateur de définition pour ce faire.

-define jpeg :extent={taille}

convertir  arbre_4624x3468.jpg -définir JPEG : Le degré =1MB tree_4624x3468_extent1MB.jpg



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

Commutateur de bande

Les photos que nous prenons avec des appareils photo sont accompagnées de métadonnées. La suppression des métadonnées peut également libérer de l'espace. Dans ImageMagick, nous faisons cela en utilisant le commutateur de bande.

convertir tree_4624x3468.jpg -déshabiller tree_strip.jpg



Ici, comme vous pouvez le voir, la photo originale fait 4624×3468 et 5.7MiB. Mais l'image dont les métadonnées ont été supprimées est de 4,65 Mo.

Commutateur d'espace colorimétrique

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

convertir tree_4624x3468.jpg -espace colorimétrique arbre gris_gray.jpg -qualité 75



Comme vous pouvez le voir, la réduction de la taille de l'image n'est pas trop importante, mais il y a une réduction - de 5,70226 MiB à 4,44997 MiB.

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

convertir tree_4624x3468.png -espace colorimétrique arbre gris_graypng.png



Dans le cas d'un PNG, ma photo d'origine, c'est-à-dire 4624 × 3468, fait 22,42 Mo, mais quand je la rend grise, elle devient 8,88 Mo.

Commutateur de 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 -couleurs 16 arbre_4624x3468_16couleurs.png



Le PNG d'origine était de 4624 × 3468 et 22,42 Mo. Cependant, lorsque j'ai changé les couleurs à seulement 16, la taille de l'image est devenue de 4,27 Mo. Et la photo ressemble à ça :


arbre_4624x3468_16couleurs.png

Utilisation de plusieurs commutateurs

Désormais, vous n'avez plus besoin d'utiliser un seul interrupteur sur une photo ! Vous pouvez combiner autant de commutateurs que vous le souhaitez sur une image.

Ainsi, dans l'exemple 1, je vais prendre une photo PNG d'un arbre. Cette photo originale a une taille de 4624 × 3468 et 22,42 Mo, et je vais utiliser plusieurs commutateurs et voir où cela me mène.

convertir tree_4624x3468.png -déshabiller -redimensionner 75 % x75 % -définir png:compression-level= 9 -espace colorimétrique gris  tree_4624x3468_reducedsize.png



Donc, ce PNG, avec une taille originale de 22,42 Mo, s'est transformé en une image de 5,3 Mo. L'image résultante est d'environ 23% de la taille d'origine.

Alors ensuite, vérifions un JPG.

convertir tree_4624x3468.jpg -qualité 75 -redimensionner 75 % x75 % -déshabiller -couleurs 16 arbre_4624x3468_taillereduite.jpg



Donc, ici, pour le JPG, nous sommes passés d'une taille originale de 5,7 Mo à environ 2,2 Mo pour une image colorée.

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

convertir tree_4624x3468.jpg -qualité 75 -redimensionner 75 % x75 % -déshabiller -espace colorimétrique arbre gris_4624x3468_taillereduite.jpg



Ici, nous sommes passés d'une taille originale de 5,7 Mo à 1,6 Mo pour une image grise.

Si vous l'aviez voulu, vous auriez également pu définir une limite maximale de taille. Le fait est que vous pouvez réduire la taille si vous y tenez vraiment.

Conclusion

Lorsque nous écrivons du 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 images trop grandes. 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 trop faible qualité, mais nous ne pouvons pas non plus nous permettre d'avoir des images de grande taille. Nous avons donc besoin de moyens pour réduire la taille de l'image. ImageMagick offre une variété de façons de réduire la taille de votre image sous la forme de divers commutateurs - qualité, redimensionnement, définition, etc. Vous pouvez en utiliser un ou plusieurs pour ajuster la taille de l'image.