2005/04/06(水) [n年前の日記]
#2 [hns] PNG画像の画像サイズ取得に失敗するときがあったような記憶があるのだけど
どのへんを修正すればいいのかしら。/lib/Image/Size.pm あたりかな。眺めてたら、png_size というサブルーチンがあった。これかしら。
該当サブルーチンだけ別スクリプトにコピペして、ローカルでテストすることに。必ずしもサイズ取得に失敗するわけではなかった記憶もあるので…。おそらく、特定のツールが出力する png がイリーガルなのではないかと予想。ひとまず、
アレ? どれも正常な画像サイズが出力される。うーん。どのツールで吐き出した png 画像が、異常な画像サイズになるんだろう。
以前、自分がこの件を自覚したのは、 _この時 らしい。coLinux の ScreenShot を png形式 でアップロードしてハマってたらしい…。PNGの代わりにアップロードしたGIF画像は、1280x960、256色 の画像。ということは、そのサイズの png 画像だと怪しくなるのかな。
OPTPiX と xPadie で256色に減色した、1280x960 の png をチェックしてみた。…どちらも正常な画像サイズが返ってくる。うーん。
とりあえず、再現しないと話にならんし…。後でもうちょっと試してみることにしやう。
該当サブルーチンだけ別スクリプトにコピペして、ローカルでテストすることに。必ずしもサイズ取得に失敗するわけではなかった記憶もあるので…。おそらく、特定のツールが出力する png がイリーガルなのではないかと予想。ひとまず、
- blender で出力。640x480 フルカラー。
- GIMP で出力。640x480 フルカラー。
- optipng で出力。640x480 フルカラー。
- OPTPiX で出力。1280x934、16色。
- BTJ32 で出力。1280x960 フルカラー。
アレ? どれも正常な画像サイズが出力される。うーん。どのツールで吐き出した png 画像が、異常な画像サイズになるんだろう。
以前、自分がこの件を自覚したのは、 _この時 らしい。coLinux の ScreenShot を png形式 でアップロードしてハマってたらしい…。PNGの代わりにアップロードしたGIF画像は、1280x960、256色 の画像。ということは、そのサイズの png 画像だと怪しくなるのかな。
OPTPiX と xPadie で256色に減色した、1280x960 の png をチェックしてみた。…どちらも正常な画像サイズが返ってくる。うーん。
◎ ひょっとしたらと思ったので :
open(IN, $file); # /* ひらきます */となってたところを、
open(IN, $file) || return undef; # /* ひらきます */ binmode(IN); # for DOSに変更。gif_size 、jpeg_size がそうなってるので。…でも、コレは関係ないようにも思える。 *1
とりあえず、再現しないと話にならんし…。後でもうちょっと試してみることにしやう。
*1: ファイルオープンに失敗したら、そもそも画像が表示されないだろうし。binmode() だって、Windows上で動かすときに必要なのであって。UNIX環境なら、どのファイルもバイナリモードで open してるはずだし…。
[ ツッコむ ]
以上です。