GNU/Linux >> Tutoriels Linux >  >> Linux

Pngquant - Un utilitaire de ligne de commande pour compresser des images PNG sous Linux

Pngquant est un compresseur PNG avec perte de ligne de commande gratuit, open source et multiplateforme. Il est basé sur une libimagequant portable bibliothèque et est écrit en C99 . Il réduit considérablement la taille du fichier en convertissant l'image PNG en 8 bits plus efficace Format PNG 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. Dans ce guide, voyons comment installer Pngquant et comment compresser des images PNG sous Linux à l'aide de Pngquant.

Caractéristiques

Pngquant possède 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é avec des scripts shell, des interfaces graphiques et des logiciels côté serveur.
  • Convertit les images dans la qualité souhaitée et ignore les images qui ne peuvent pas être converties avec la qualité souhaitée.
  • Compatibilité multicœur et optimisations Intel SSE

Installer Pngquant sous Linux

Pngquant peut être installé de plusieurs façons.

Installez Pngquant à partir des dépôts de distribution

Pngquant est disponible dans les dépôts par défaut de la plupart des distributions Linux.

Sur Arch Linux et ses variantes, Pngquant est disponible dans [Communauté] dépôt. Activez le référentiel communautaire et installez-le à l'aide de 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 [Universe] dépôt pour installer Pngquant.

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

$ 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 installée de Pngquant :

$ pngquant -V
2.5.0 (June 2015)

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

Installer Pngquant depuis la source

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é dans /usr/local/bin emplacement par défaut. Si vous souhaitez l'installer dans un autre répertoire, lancez :

$ ./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érifier la version de Pngquant :

$ pngquant -V
2.12.5 (July 2019)

Voir? C'est la version la plus récente.

Installer Pngquant avec Cargo

Pngquant peut également être installé à l'aide de Cargo directeur chargé d'emballage. Tout d'abord, installez Rust comme décrit dans le lien suivant.

  • Installer le langage de programmation Rust sous Linux

git cloner 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 consulter Pngquant page d'installation officielle .

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 152k .

Compresser une image PNG

Pour compresser une image PNG avec Pngquant, il suffit de fournir 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 avec le nom "ostechnix-fs8.png" . Par défaut, Pngquant utilisera le même nom de fichier de sortie que le nom de fichier d'entrée avec le suffixe -or8.png ou -fs8.png à la fin. Cela signifie qu'il 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 le 152k taille de l'image à seulement 48k . C'est effectivement du bon travail. Ouvrez l'image à l'aide de n'importe quel visualiseur 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 dans les 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 va compresser picture1.png et image2.png dans le répertoire de travail courant.

$ pngquant picture1.png picture2.png

De plus, nous pouvons déplacer tous les fichiers dans un répertoire et les compresser en une seule fois. Par exemple, pour convertir toutes les images dans 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 changer le suffixe comme vous le souhaitez 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 le point de compression si les fichiers convertis sont plus volumineux que les fichiers source ? Cette conversion ne vaut rien, 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.

Enregistrer 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 va compresser ostechnix.png et l'enregistrer sous output.png dans Documents répertoire.

Compresser les images PNG en qualité personnalisée

Pngquant compresse au maximum les images. Nous pouvons également régler manuellement la qualité des images. Pngquant nous permet de définir la qualité d'image dans la plage 0 (pire) à 100 (parfait) 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 donne une qualité inférieure à la qualité minimale, l'image ne sera pas enregistrée.

Métadonnées de l'image de bande

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 n'avez pas les métadonnées, vous pouvez simplement les supprimer en utilisant pngquant comme ci-dessous.

$ pngquant --strip image.png

Pour plus de détails, consultez les pages de manuel.

$ man pngquant

Suggestion de lecture :

  • Converseen - Un convertisseur et un redimensionneur d'images graphiques simples par lot
  • 3 visionneuses d'images CLI pour afficher des images dans le terminal
  • Comment afficher les images miniatures dans le terminal
  • Comment enregistrer la sortie de la 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.


Linux
  1. Installer Java manuellement sur Linux

  2. Installer MariaDB ou MySQL sur Linux

  3. Comment installer Python sur Linux

  4. Comment installer Java sur Linux

  5. Comment optimiser et compresser des images JPEG ou PNG dans la ligne de commande Linux

Pngquant - Un utilitaire de ligne de commande pour compresser des images PNG sous Linux

Comment convertir par lots des images PNG au format JPG sous Linux

Comment installer Pigz pour compresser les fichiers plus rapidement sous Linux

Comment compresser un fichier image PNG sous Linux

Comment convertir un PDF en images PNG et inversement sous Linux

Comment installer et utiliser Pigz pour compresser des fichiers plus rapidement sous Linux