Recherche de site Web

Compresser les images PNG sous Linux à l’aide de Pngquant


Dans ce guide, nous allons apprendre ce qu'est Pngquant et ses fonctionnalités, comment installer Pngquant et comment compresser des images PNG sous Linux à l'aide de Pngquant.

Qu’est-ce que Pngquant ?

Pngquant est un compresseur PNG avec perte en ligne de commande gratuit, open source et multiplateforme. Il est basé sur une bibliothèque portable libimagequant et est écrit en C99.

Il réduit considérablement la taille du fichier en convertissant l'image PNG au format PNG 8 bits plus efficace et préserve la transparence alpha complète. Comme vous le savez peut-être déjà, les fichiers PNG 8 bits sont souvent 60 à 80 % plus petits que les fichiers PNG 24/32 bits.

Les images compressées à l'aide de Pngquant sont entièrement compatibles avec tous les navigateurs Web et systèmes d'exploitation. Pngquant peut compresser une ou plusieurs images à la fois.

Caractéristiques

Pngquant a les fonctionnalités suivantes.

  • Prise en charge de la conversion par lots de plusieurs fichiers PNG.
  • Génération de palettes de haute qualité.
  • Il utilise l'algorithme de quantification Median Cut pour optimiser les images.
  • Peut être facilement intégré aux scripts shell, aux interfaces graphiques et aux logiciels côté serveur.
  • Convertissez les images dans la qualité souhaitée et ignore les images qui ne peuvent pas être converties avec la qualité souhaitée.
  • Prise en charge multicœur et optimisations Intel SSE.

Installer Pngquant sous Linux

Pngquant peut être installé de plusieurs manières.

Installer Pngquant depuis les dépôts de la distribution

Pngquant est disponible dans les référentiels par défaut de la plupart des distributions Linux.

Sur Arch Linux et ses variantes, Pngquant est disponible dans le référentiel [Communauté]. Activez le référentiel communautaire et installez-le en utilisant Pacman comme ci-dessous.

sudo pacman -S pngquant

Sur Debian, Ubuntu, Linux Mint :

sudo apt install pngquant

Sur les systèmes Ubuntu, vous devez activer le référentiel [Universe] pour installer Pngquant.

Pour activer le référentiel Universe, procédez :

sudo add-apt-repository universe

Sur Fedora :

sudo dnf install pngquant

Sur openSUSE :

sudo zypper install pngquant

Sur CentOS :

sudo yum install epel-release
sudo yum install pngquant

Vérifiez la version Pngquant installée :

$ pngquant -V
2.5.0 (June 2015)

La version de Pngquant disponible dans les référentiels par défaut est peut-être ancienne. Si vous souhaitez la version la plus récente, compilez-la et installez-la manuellement à partir des sources comme ci-dessous.

Installer Pngquant à partir des sources

Tout d’abord, installez les dépendances nécessaires.

Sur Debian, Ubuntu :

sudo apt install git gcc cmake libpng-dev pkg-config

Sur CentOS, Fedora :

sudo yum install git libpng-devel gcc cmake

Ensuite, git clonez la dernière version de Pngquant :

git clone --recursive https://github.com/kornelski/pngquant.git

La commande ci-dessus téléchargera le contenu du référentiel Pngquant GitHub et l'enregistrera dans un dossier nommé « pngquant » dans votre répertoire de travail actuel.

Basculez vers le répertoire "pngquant :

cd pngquant

Enfin, exécutez les commandes suivantes pour compiler et installer Pngquant :

make
sudo make install

Pngquant sera installé par défaut à l'emplacement /usr/local/bin. Si vous souhaitez l'installer dans un autre répertoire, exécutez :

./configure --prefix=dir && make

Remplacez "dir" par votre chemin. Vous devez d'abord exécuter cette commande, puis exécuter la commande "sudo make install".

Vérifiez la version Pngquant :

$ pngquant -V
2.12.5 (July 2019)

Voir? Il s'agit de la version la plus récente.

Installer Pngquant en utilisant Cargo

Pngquant peut également être installé à l'aide du gestionnaire de packages Cargo. Tout d’abord, installez Rust comme décrit dans le lien suivant.

  • Installer le langage de programmation Rust sous Linux

git clone la dernière version de Pngquant :

git clone --recursive https://github.com/kornelski/pngquant.git

Enfin, construisez et installez Pngquant en utilisant Cargo comme ci-dessous.

cd pngquant
sudo cargo build --release

Pour d'autres méthodes d'installation, veuillez vous référer à la page d'installation officielle de Pngquant.

Compresser les images PNG sous Linux à l’aide de Pngquant

L'utilisation de Pngquant est triviale et ne nécessite aucune compétence particulière pour l'utiliser.

J'ai un fichier image PNG nommé "ostechnix.png" dans mon répertoire actuel. Laissez-moi vous montrer sa taille.

$ du -sh ostechnix.png 
152K ostechnix.png

Comme vous pouvez le voir, la taille de l'image est de 152 Ko.

Compresser une image PNG

Pour compresser une image PNG avec Pngquant, indiquez simplement son chemin comme ci-dessous :

pngquant ostechnix.png

La commande ci-dessus compressera le fichier ostechnix.png et l'enregistrera en tant que nouveau fichier sous le nom "ostechnix-fs8.png". Par défaut, Pngquant utilisera le nom du fichier de sortie identique au nom du fichier d'entrée avec le suffixe -or8.png ou -fs8.png à la fin. Cela signifie que cela n'écrasera pas le fichier source. Si vous n'êtes pas satisfait du taux de compression, supprimez simplement le fichier compressé et conservez l'original.

Vérifions à nouveau la taille du fichier image compressé :

$ du -sh ostechnix-fs8.png 
48K ostechnix-fs8.png

Compresser les images PNG à l’aide de Pngquant

Voir? Pngquant a réduit la taille de l'image 152k à seulement 48k. C'est effectivement du bon travail. Ouvrez l'image à l'aide de n'importe quelle visionneuse d'images et comparez-les. Vous ne trouverez pas beaucoup de différence de qualité entre les images originales et compressées. Les deux images seront presque identiques !

Afficher le message d'état pendant la compression

Par défaut, Pngquant n'affichera pas ce qui se passe en coulisses lors de la compression des images. Si vous souhaitez afficher le message d'état, utilisez cette commande :

$ pngquant ostechnix.png --verbose
ostechnix.png:
conserving memory
read 152KB file
corrected image from gamma 2.2 to sRGB gamma
made histogram...1854 colors found
selecting colors...4%
selecting colors...25%
selecting colors...28%
selecting colors...49%
selecting colors...69%
selecting colors...90%
selecting colors...100%
moving colormap towards local minimum
eliminated opaque tRNS-chunk entries...61 entries transparent
mapped image to new colors...MSE=0.055 (Q=99)
writing 256-color image as ostechnix-fs8.png
No errors detected while quantizing 1 image.

Vous verrez maintenant la progression pendant la compression.

Compresser plusieurs images PNG

Pngquant peut également convertir plusieurs images. La commande suivante compressera picture1.png et picture2.png dans le répertoire de travail actuel.

pngquant picture1.png picture2.png

De plus, nous pouvons déplacer tous les fichiers d’un répertoire et les compresser en une seule fois. Par exemple, pour convertir toutes les images d'un dossier nommé "/home/sk/images", exécutez :

pngquant /home/sk/images/*.png

Modifier le suffixe du nom du fichier de sortie

Comme je l'ai déjà dit, le nom du fichier de sortie est le même que le nom d'entrée sauf qu'il se termine par "-fs8.png", "-or8.png". Vous pouvez cependant modifier le suffixe à votre guise comme ci-dessous.

pngquant ostechnix.png --ext linux.png

Cette commande compressera le fichier ostechnix.png et l'enregistrera sous ostechnixlinux.png.

Ignorer l'enregistrement des fichiers si la taille des fichiers compressés est supérieure à celle des fichiers d'origine

Quel est l’intérêt de la compression si les fichiers convertis sont plus volumineux que les fichiers source ? Cette conversion ne vaut pas la peine, nous pouvons donc l'ignorer comme ci-dessous.

pngquant --skip-if-larger ostechnix.png

La commande ci-dessus n'enregistrera le fichier converti que s'il est plus petit que l'original.

Enregistrez les fichiers convertis dans un chemin différent

Par défaut, Pngquant enregistrera les fichiers image d'entrée et de sortie dans le même répertoire lui-même. Si vous souhaitez enregistrer le fichier de sortie ailleurs, la commande serait :

pngquant ostechnix.png --output Documents/output.png

Cette commande compressera ostechnix.png et l'enregistrera sous output.png dans le répertoire Documents.

Compresser les images PNG dans une qualité personnalisée

Pngquant compresse les images autant que possible. Nous pouvons également définir manuellement la qualité des images. Pngquant nous permet de définir la qualité de l'image dans la plage 0 (la pire) à 100 (parfaite) en utilisant min et max paramètres.

L'exemple suivant définit la qualité d'image minimale sur 60 et la qualité maximale sur 80.

pngquant --quality=60-80 image.png

Si la conversion aboutit à une qualité inférieure à la qualité minimale, l'image ne sera pas enregistrée.

Supprimer les métadonnées de l'image

Les métadonnées d'image sont un ensemble de données sur les mages. Il comprend toutes les informations sur une image, telles que le format d'image, les paramètres de l'appareil photo, le DPI, la date et l'heure de l'image, le titre et les commentaires, la géolocalisation et bien plus encore. Reportez-vous à l'article suivant pour savoir comment afficher les métadonnées de l'image.

  • Comment afficher les métadonnées d'image sous Linux

Si vous ne disposez pas des métadonnées, vous pouvez simplement les supprimer en utilisant pngquant comme ci-dessous.

pngquant --strip image.png

Pour plus de détails, reportez-vous aux pages de manuel.

man pngquant

Lecture suggérée :

  • Converseen - Un simple convertisseur et redimensionneur d'images par lots graphique
  • 3 visionneuses d'images CLI pour afficher les images dans le terminal
  • Comment afficher des images miniatures dans le terminal
  • Comment enregistrer la sortie d'une commande Linux dans une image ou un fichier texte
  • Gifski - Un encodeur GIF multiplateforme de haute qualité
  • Flameshot - Un outil de capture d'écran simple mais puissant et riche en fonctionnalités

J'utilise Pngquant depuis de nombreuses années maintenant. Cela m'aide grandement à compresser les images PNG jusqu'à 70 % ou plus. Si vous recherchez un optimiseur et un compresseur d'image PNG, Pngquant pourrait être un bon choix.

Ressources :

  • Site Web PNGquant
  • Référentiel GitHub Pngquant

Articles connexes