« 「音ログ」付けてみました | メイン | カルロス・クライバー死去 »
2004年07月19日
GD2.0での画質
以前のエントリーでGDを使ったサムネイル画像の作成方法を書きました。これを書いたときは使用サーバーでGD2.0が使えなかったので検証できませんでしたが、いつのまにか使えるようになっていたので画質の比較をしてみます。
厳密には、PHPプログラムの上で、GD2.0の環境でしか使えない関数(imagecreatetruecolor、imagecopyresampled)と、GD1.xがあれば使える関数(imagecreate、imagecopyresized)の画質比較ですね。
大きい画像がオリジナル画像で、小さい画像の左がGD1.6、右がGD2.0を使用して作成したサムネイルです。
phpinfoでのバージョン表示では
・1.6.2 or higher
・bundled (2.0.15 compatible)
ソースは
GD1.6
$img = imagecreate(60,60);
$imagefrom = imagecreatefromjpeg($file1);
imagecopyresized($img,$imagefrom,0,0,$resize_x,$resize_y,$resize_w,$resize_h,$imagesize[0],$imagesize[1]);
GD2.0
$img = imagecreatetruecolor(60,60);
$imagefrom = imagecreatefromjpeg($file1);
imagecopyresampled($img,$imagefrom,0,0,$resize_x,$resize_y,$resize_w,$resize_h,$imagesize[0],$imagesize[1]);
このように、imagecreatetruecolorとimagecopyresampledの二つの関数を使うかどうかの違いです。
で、画像を見てみるとGD1.6の方は、画像によってはなんだかわからないぐらい潰れてしまい、対してGD2.0ではちょっとぼやけたような印象にはなりますが、全体像はわかりやすくなったようです。
関数の使い方でもう少し綺麗にできるような気もします。
まぁ、この程度の画像ならどっちでもいいっちゃいいんですが。^^;
ただ、画質の問題よりも、GD1.6の頃のコードでは元画像によってはサムネイルの作成に失敗(色が抜ける)することがあったのに、新しいコードにしてからはそのようなことがなくなったので、変更して良かったと思っています。
投稿者 Utayume : 2004年07月19日 23:21| 05 Work(Perl, PHP, etc)
AD
トラックバック
このエントリーのトラックバックURL:
http://ondes-martenot.info/MT/mt-tb.cgi/137