PHP | GDでWebPに変換した場合のファイルサイズを比較

PHP GD,PHP

GDでWebPに変換した場合のファイルサイズを比較

GDでWebPに変換した場合のファイルサイズを比較してみました。

また、元ファイルを圧縮しておくべきか、しなくても変わらないのか気になっていたので、元ファイルにする画像を圧縮済み、非圧縮でWebPに変換して比較してみました。

品質設定オプション(圧縮率)別の比較

比較に使う元画像は、パンダさんで圧縮済みのjpeg画像(137KB)にしました。

imagewebp()、imagejpeg()の品質設定オプションは共に0(低品質)~100(高品質)の間で設定可能です。

また、品質を指定しない場合のデフォルト値は、imagewebp()が80、imagejpeg()が75。

QualityjpegWebP
028.8KB8.55KB
1039.3KB17.8KB
2053.6KB23.3KB
3066.1KB29.1KB
4076.8KB35.1KB
5080.5KB41.3KB
60112KB47.4KB
70132KB55.2KB
80143KB74.4KB
90195KB136KB
100461KB378KB

今回はパンダさんで圧縮済みの画像を利用していることもあるからか、imagejpeg()では80から、imagewebp()では100にて、元画像のファイルサイズより大きくなりました。

圧縮したファイルの見た目を比較

上記の圧縮率(Quality)別比較で作成された実際のファイルです。

0を指定した場合の見た目の劣化はimagejpeg()の方が大きいですね。

10からは、そこまで見た目には違いは出ていない気もします。

圧縮済み・非圧縮画像をWebPに変換した場合の比較

比較に使う元画像は、パンダさんで圧縮前のjpeg画像(281KB)、それをパンダさんで圧縮したjpeg画像(137KB)にしました。

imagewebp()のQuality値は指定せずデフォルト値(75)を利用しました。

元ファイル元ファイルのサイズWebPに変換後のサイズ
jpeg 未圧縮281KB86.6KB
圧縮済み137KB74.4KB

結果は、変換後のファイルサイズにそこまで大きな差はでなかったです。

元ファイルになるjpegやpngファイルも未対応ブラウザに利用するとはいえ、GoogleのSEO面だけで言えばWebPを使っていれば未対応ブラウザ用のjpegやpngは評価から無視されてるぽいので圧縮しておく必要はないのかもしれませんね。

PHP GD,PHP

Posted by Yousuke.U