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が良い選択かもしれません。