favicon wars

外部サイトのフィードを、BOTにクロールさせる。
それ自体はよくある処理だが、ついでにfaviconも取得し、適切な画像(例えばPNG)に変換してキャッシュする。


ico形式をPNGに変換するところが、この処理のキモだ。
GD2はico形式に対応しておらず、何かしら対策が必要。
ImageMagickならば対応している様だが、残念ながら、それを利用できる環境ではない。


PHP用のico対応ライブラリは、程なく見つけることが出来た。


class.ico.php
http://www.phpclasses.org/browse/file/9705.html


ソースを見たところ、内部処理をGDで行っている。
これなら問題なく動くだろう。


まずは試しにこのブログ、つまりはてなダイアリーfaviconを拝借。

ふむふむ、ちゃんとゲットできてる。
こりゃいい。


では続けて、twitter

え。なにこれ。
なにこの、不思議時空。


言うまでもないけど、以下のカラーリングが正解。


この変色は、class.ico.phpのバグが原因とのことで。
修正の手順は、こちら。


PHP ICO to PNG conversion | Tom Reitz
http://www.tom-reitz.com/2009/02/17/php-ico-to-png-conversion/


情報提供に感謝です。
とても助かりました。