PHPのGDライブラリで荒い縮小画像を綺麗にする

DokuWiki でドキュメントを作成した時のこと、元は同じ画像でも、下書き用WEBサーバで表示する画像に比べて、別の公開用WEBサーバで表示すると非常に荒く表示された。元ファイルは ubuntu でキャプチャした 784×664 ピクセルの同じ画像。これを、<img with=“400”> タグで縮小して表示しているだけである。

下書き用WEBサーバ(きれい) 公開用WEBサーバ(荒い)

ふと、昔、どこかのサイトで GD Library に関する記事を目にしたのを思い出した。

早速、確認する。以下のコードのみを書いたファイル ( a.php などで保存 ) を両方のサーバで作り、それぞれブラウザで表示。

<?php
phpinfo();
?>

下書き用WEBサーバのみに GD Library が入っている。たぶん原因はこれだろう・・・と推測する。

であれば、公開用WEBサーバに GD Library をインストールすればよいことになる(GD Library が原因ならば、だが)。

GD Library は php4-extensions または、php5-extensions に入っている。自分が使っている PHP のバージョンに合わせて入れればよい。

%su -
Password:
# cd /usr/ports/lang/php5-extensions
# make config

こ~んな画面が表示されるので、GD library support のところを [X] にする。

続けて、インストールする。

# make reinstall

そして、apache を再起動。

# /usr/local/etc/rc.d/apache22 restart

ブラウザで DokuWiki を確認すると綺麗になった。めでたし、めでたし。