東京都府中市、渋谷区のWEB制作会社Maromaroのブログです

2018.02.21

Sasaki

PHPでPNG画像を圧縮してコンバージョンアップ!

こんにちは、佐々木です。

今回はPNG画像をPHPで自動圧縮して、ウェブサイトを軽くしてコンバージョンアップしちゃおう!という話です。

動的に一覧ページを生成し、画像をアップロードできるサイトでは有効なのではないでしょうか。

WordPress等では下記のようなプラグインもあります。
EWWW Image Optimizer

想定環境はCentos 6です。

まずはpngquantをインストール

運がよければ? 下記のようにインストールが可能です。

yum install pngquant

もしも、インストールができなければ、下記の記事が参考になると思います。
【Linux】pngquantをLinuxサーバー等にインストールする方法 – Kのプログラミング勉強ブログ

PHPにpngquantを組み込む

例えば弊社のCoversでは元画像をリサイズして出力していました。
ここのロジックに組み込んで利用しています。

画像アップロードした時に実行しても良いかもしれませんね。

PHPから下記のようにコマンドを実行します。

pngquant --ext .png --force filename.png #filename.pngのみを圧縮したい場合

pngquant --ext .png --force {dir}/*.png #ディレクトリを指定してpngの拡張子全てを圧縮したい場合

pngquantではjpg等も圧縮ができますが、ここでは割愛します。
また、圧縮率等の調整も可能です。
pngquant — lossy PNG compressor

既にアップロードしてしまっている画像は後者のディレクトリ単位での圧縮を行えば良いと思います。


ショッピングサイトや商品一覧等、大量の画像を表示する場合に、画像の総容量を見落としがちですよね。
スマートフォンでの閲覧を考えると軽快に表示がされるように容量を削る方法は、ページの離脱率を減らし、コンバージョンアップにも繋がるかと思います。

以上、佐々木でした!