GNU/Linux >> Linux の 問題 >  >> Linux

Pngquant –LinuxでPNG画像を圧縮するためのコマンドラインユーティリティ

Pngquant は、無料のオープンソースでクロスプラットフォームのコマンドライン不可逆PNGコンプレッサーです。ポータブルなlibimagequantに基づいています ライブラリであり、 C99で記述されています 。 PNG画像をより効率的な8ビットに変換することにより、ファイルサイズを大幅に削減します PNG形式で、完全なアルファ透明度を維持します 。ご存知かもしれませんが、8ビットのPNGファイルは24/32ビットのPNGファイルよりも60〜80%小さいことがよくあります。 Pngquantを使用して圧縮された画像は、すべてのWebブラウザおよびオペレーティングシステムと完全に互換性があります。 Pngquantは、一度に1つまたは複数の画像を圧縮できます。このガイドでは、Pngquantをインストールする方法と、Pngquantを使用してLinuxでPNG画像を圧縮する方法を見てみましょう。

機能

Pngquantには次の機能があります。

  • 複数のPNGファイルのバッチ変換のサポート。
  • 高品質のパレット生成。
  • メディアンカット量子化アルゴリズムを使用して画像を最適化します。
  • シェルスクリプト、GUI、サーバー側ソフトウェアと簡単に統合できます。
  • 希望の品質で画像を変換し、希望の品質で変換できない画像をスキップします。
  • マルチコアのサポートとIntelSSEの最適化。

LinuxにPngquantをインストールする

Pngquantはさまざまな方法でインストールできます。

ディストリビューションのリポジトリからPngquantをインストールする

Pngquantは、ほとんどのLinuxディストリビューションのデフォルトのリポジトリで利用できます。

Arch Linuxとそのバリアントでは、Pngquantは[コミュニティ]で利用できます。 リポジトリ。コミュニティリポジトリを有効にし、 Pacmanを使用してインストールします 以下のように。

$ sudo pacman -S pngquant

Debian、Ubuntu、Linux Mintの場合:

$ sudo apt install pngquant

Ubuntuシステムでは、 [Universe]を有効にする必要があります Pngquantをインストールするためのリポジトリ。

ユニバースリポジトリを有効にするには、次の手順を実行します。

$ sudo add-apt-repository universe

Fedoraの場合:

$ sudo dnf install pngquant

openSUSEの場合:

$ sudo zypper install pngquant

CentOSの場合:

$ sudo yum install epel-release
$ sudo yum install pngquant

インストールされているPngquantバージョンを確認します:

$ pngquant -V
2.5.0 (June 2015)

デフォルトのリポジトリで使用可能なバージョンのPngquantは古い可能性があります。最新バージョンが必要な場合は、以下のようなソースからコンパイルして手動でインストールしてください。

ソースからPngquantをインストール

まず、必要な依存関係をインストールインストールします。

Debian、Ubuntuの場合:

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

CentOS、Fedoraの場合:

$ sudo yum install git libpng-devel gcc cmake

次に、git cloneの最新バージョンのPngquant:

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

上記のコマンドは、Pngquant GitHubリポジトリのコンテンツをダウンロードし、現在の作業ディレクトリの「pngquant」という名前のフォルダに保存します。

「pngquantディレクトリ:

」に切り替えます
$ cd pngquant

最後に、次のコマンドを実行して、Pngquantをコンパイルおよびインストールします。

$ make
$ sudo make install

Pngquantは/usr / local / binにインストールされます デフォルトでは場所。別のディレクトリにインストールする場合は、次のコマンドを実行します。

$ ./configure --prefix=dir && make

「dir」をパスに置き換えます。最初にこのコマンドを実行してから、「sudomakeinstall」コマンドを実行する必要があります。

Pngquantバージョンを確認してください:

$ pngquant -V
2.12.5 (July 2019)

見る?最新バージョンです。

Cargoを使用してPngquantをインストールする

Pngquantは、 Cargoを使用してインストールすることもできます パッケージマネージャー。まず、をインストールします 次のリンクで説明されているように。

  • LinuxにRustプログラミング言語をインストールする

git clone最新バージョンのPngquant:

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

最後に、以下のようにCargoを使用してPngquantをビルドしてインストールします。

$ cd pngquant
$ sudo cargo build --release

その他のインストール方法については、Pngquant公式インストールページを参照してください。 。

Pngquantを使用してLinuxでPNG画像を圧縮する

Pngquantの使用法は簡単で、使用するのに特別なスキルは必要ありません。

現在のディレクトリに「ostechnix.png」という名前のPNG画像ファイルがあります。サイズをお見せしましょう。

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

ご覧のとおり、画像サイズは 152k

PNG画像を圧縮する

PNG画像をPngquantで圧縮するには、次のようにパスを指定します。

$ pngquant ostechnix.png

上記のコマンドは、ostechnix.pngファイルを圧縮し、 "ostechnix-fs8.png"という名前の新しいファイルとして保存します。 。デフォルトでは、Pngquantは接尾辞 -or8.pngが付いた入力ファイル名と同じ出力ファイル名を使用します または-fs8.png 最後に。つまり、ソースファイルは上書きされません。圧縮率に満足できない場合は、圧縮ファイルを削除して元のファイルを保持するだけです。

圧縮された画像のファイルサイズをもう一度確認しましょう:

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

Pngquantを使用してPNG画像を圧縮する

見る? Pngquantは152kを削減しました 画像のサイズを48kにします 。それは確かに良い仕事です。任意の画像ビューアを使用して画像を開き、それらを比較します。元の画像と圧縮された画像の品質に大きな違いはありません。どちらの画像もほぼ同じように見えます!

圧縮中にステータスメッセージを表示する

デフォルトでは、Pngquantは画像を圧縮するときに舞台裏で何が起こっているかを表示しません。ステータスメッセージを表示する場合は、次のコマンドを使用します:

$ 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.

これで、圧縮が行われている間の進行状況が表示されます。

複数のPNG画像を圧縮する

Pngquantは複数の画像を変換することもできます。次のコマンドはpicture1.pngを圧縮します およびpicture2.png 現在の作業ディレクトリにあります。

$ pngquant picture1.png picture2.png

また、ディレクトリ内のすべてのファイルを移動して、一度に圧縮することもできます。たとえば、「/ home / sk / images」という名前のフォルダ内のすべての画像を変換するには、次のコマンドを実行します。

$ pngquant /home/sk/images/*.png

出力ファイル名のサフィックスを変更する

すでに述べたように、出力ファイル名は、 "-fs8.png" で終わることを除いて、入力名と同じです。 、 "-or8.png" 。ただし、以下のようにサフィックスを変更できます。

$ pngquant ostechnix.png --ext linux.png

このコマンドは、ostechnix.pngファイルを圧縮し、 ostechnixlinux.pngとして保存します。 。

圧縮ファイルのサイズが元のファイルよりも大きい場合は、保存ファイルをスキップします

変換されたファイルがソースファイルよりも大きい場合の圧縮ポイントは何ですか?その変換は価値がないので、以下のようにスキップできます。

$ pngquant --skip-if-larger ostechnix.png

上記のコマンドは、変換されたファイルが元のファイルよりも小さい場合にのみ保存されます。

変換されたファイルを別のパスに保存

デフォルトでは、Pngquantは入力と出力の画像ファイルを同じディレクトリ自体に保存します。出力ファイルを別の場所に保存する場合、コマンドは次のようになります。

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

このコマンドはostechnix.pngを圧縮し、 output.pngとして保存します ドキュメント ディレクトリ。

PNG画像をカスタム品質で圧縮

Pngquantは、画像を可能な限り圧縮します。画像の品質を手動で設定することもできます。 Pngquantを使用すると、画質を 0の範囲に設定できます (最悪)から 100 (完璧)を使用 および最大 パラメータ。

次の例では、最小画質を60、最高画質を80に設定しています。

$ pngquant --quality=60-80 image.png

変換の結果、品質が最低品質を下回る場合、画像は保存されません。

ストリップ画像のメタデータ

画像メタデータは、メイジに関するデータのセットです。これには、画像形式、カメラ設定、DPI、画像の日付と時刻、タイトルとコメント、ジオロケーションなど、画像に関するすべての情報が含まれます。画像メタデータを表示する方法については、次の記事を参照してください。

  • Linuxで画像メタデータを表示する方法

メタデータがない場合は、以下のようにpngquantを使用して簡単に削除できます。

$ pngquant --strip image.png

詳細については、manページを参照してください。

$ man pngquant

推奨される読み物:

  • Converseen-シンプルなグラフィカルバッチイメージコンバーターおよびリサイザー
  • ターミナルに画像を表示するための3つのCLI画像ビューア
  • ターミナルでサムネイル画像を表示する方法
  • Linuxコマンド出力を画像またはテキストファイルに保存する方法
  • Gifski –クロスプラットフォームの高品質GIFエンコーダー
  • Flameshot –シンプルでありながら強力な機能豊富なスクリーンショットツール

私は長年Pngquantを使用しています。 PNG画像を最大70%以上圧縮するのに大いに役立ちます。 PNG画像オプティマイザーとコンプレッサーを探しているなら、Pngquantが良い選択かもしれません。


Linux
  1. LinuxにMariaDBまたはMySQLをインストールする

  2. LinuxにPythonをインストールする方法

  3. LinuxにJavaをインストールする方法

  1. LinuxコマンドラインでJPEGまたはPNG画像を最適化および圧縮する方法

  2. Linuxのコマンドライン履歴

  3. Linux コマンドで Webp 画像を PNG に変換する

  1. LinuxにJavaを手動でインストールする

  2. LVMを使用してLinuxをインストールする

  3. AmazonLinuxにImageMagickをインストールする方法