CMS構築を目的にPHPをベースとしたWordPress、CakePHPやPEARなどオープンソースを中心に解説しています

PHPベースでCMSを構築する際に、アップロードされた画像をGDライブラリを利用してリサイズ、トリミング、圧縮などの画像処理をすることがよくあるのですが、改めてその性能について検証してみようと思います。
また、今回は画質がよいと言われているImageMagickライブラリもあわせてテストしてみます。

検証した環境は以下のとおりです。FuelPHPをベースとしたCMSで、GDライブラリとImageMagickライブラリの圧縮率をそれぞれ変えてみて、jpgファイルの品質を比較してみます。

PHP 7.0.18
FuelPHP 1.8

テストに利用するのは以下の横幅720px、縦幅480pxの画像です。

オリジナル画像 720x480 (173KB)

オリジナル画像 720×480 (173KB)

この画像をそれぞれのライブラリで品質を100%、90%、80%、70%に設定して、サイズ640 x 480にトリミングしてみます。

処理結果は以下の通りです。

GD 100% 640x480 (231KB)

GD 100% 640×480 (231KB)

GD 90% 640x480 (92KB)

GD 90% 640×480 (92KB)

GD 80% 640x480 (61KB)

GD 80% 640×480 (61KB)

GD 70% 640x480 (48KB)

GD 70% 640×480 (48KB)

ImageMagick 100% 640x480 (126KB)

ImageMagick 100% 640×480 (126KB)

ImageMagick 90% 640x480 (117KB)

ImageMagick 90% 640×480 (117KB)

ImageMagick 80% 640x480 (76KB)

ImageMagick 80% 640×480 (76KB)

ImageMagick 70% 640x480 (58KB)

ImageMagick 70% 640×480 (58KB)

GDよりもImageMagickの方が画質がよいと聞いていたので、これを機にImageMagickに乗り換えようと考えていましたが、見比べてもそんなに劣化はみられないですね。サンプルにする画像が悪かったかな。
ファイル容量のほうはGDのほうが圧縮率がよさそうです。運用を考えてもGDの90%で問題なさそうです。
また、処理時間ですが、体感でも明らかにImageMagickのほうが処理が重かったです。

今回の検証結果で、そのままGDを使い続けることにしました。ImageMagickについては、そのメリットについてもう少しつっこんだ実験をしてみたいと思います。

このエントリーをはてなブックマークに追加

Monthly Archives

Search