[PHP-users 9228] GDで保存したのをPNGで出力できません

nakatani php-users@php.gr.jp
Thu, 08 Aug 2002 00:56:49 +0900


 はじめまして。中谷といいます。

PHPを用いて画像に細工を加え(というかカウンターです)出力をさせる
プログラムを作っているのですが、
高速化のためサーバーでの元の画像をImageGDで保存したGD形式のものを
用いようとしているのですが、それをPNGで出力するのだけできません。

出力プログラムは
        header("Content-Type:image/png");
        $im = ImageCreateFromGD("/home/httpd/html/counterpic/testtest2.
gd");
        print ImagePNG($im);
とだけの簡単なものです。

GD→JPEG
PNG→PNG
JPEG→PNG
は上記のソースを適度に変えた上でうまく行きます。

なお、画像をほかのものと変えてみたのですがそれでもうまく行きませんでした。

直接シェルから php index.php(上の3行のプログラムのアドレス)と打ってや
ると、大量に画像データらしき出力がシェルにあふれます。

しかし、INETSPYというソフトで出力を覗いてやると、309バイト地点で出力が
止まってしまっているようです。
これはほかのものと画像を差し替えた場合でも同じ309バイト地点でした。

バイナリエディタでの結果はこの通りでした。

画像A
GD→PNG
89504E470D0A1A0A0000000D49484452000000F0000000C201030000004D29DD7731
(ここまで)
JPEG→PNG
89504E470D0A1A0A0000000D49484452000000F0000000C208030000004039BF06000003
00504C54450904056A83A12342734718146F45380C2343B9C4DB796354B084744B648747
2D240A2453504337280D0B966456494466642C22BBA39590A4BE252554472F5273667C0B
131291877964111D2B241E705442C9E3FC491D374938294F53672B33407B746ED5A49325
345D5453512A171006153A2F4467E1C5BACC948447221D8E8AAA855547B29384、、、、、
(以下略)

画像B
GD→PNG
89504E470D0A1A0A0000000D49484452000000B300000106010300000014AA36C231
(ここまで)
JPEG→PNG
89504E470D0A1A0A0000000D49484452000000B300000106080300000019BA54B3000003
00504C54450907136C82898F0915A18629CAC579224367A7889F8E4753DBC7714E061358
481EDA899CCD495C6DB6F0544A73F8E77F91486D4886C51A2217A7A5A17488AC4D2816DA
A8BA59688FDAC7CFB0E5FACD162A8E687DDF867F、、、、、
(以下略)

かかわりがありそうなソフトの環境は
OS:VINE-LINUX2.5
PHP-4.2.1
GD-1.8.3
GD-DEVEL-1.8.3,
GD-PROG-1.8.3(この2つは原因かと思って後で入れた。しかしだめだった)
libpng-1.0.7
libpng-devel-1.0.7

configure command は

'./configure' '--prefix=/usr' '--with-config-file-path=/etc' '--enable-
force-cgi-redirect' '-- disable-debug' '--enable-pic' '--enable-inline-
optimization' '--with-apxs=/usr/sbin/apxs' '--with-exec-dir=/usr/bin' '-
-with-bz2' '--with-regex=system' '--with-gettext' '--with-gd' '-- with-
jpeg-dir=/usr' '--with-png-dir=/usr' '--with-ttf' '--with-zlib' '--with-
gdbm' '--with- openssl' '--with-layout=GNU' '--enable-debugger' '--
enable-magic-quotes' '--enable- safe-mode' '--enable-sockets' '--enable-
sysvsem' '--enable-sysvshm' '--enable-track- vars' '--enable-yp' '--
enable-ftp' '--enable-wddx' '--without-mysql' '--without-oracle' '-- 
without-oci8' '--with-xml' '--with-expat-dir=/usr' '--with-dom=/usr' '--
enable-iconv' '-- enable-mbregex' '--with-namazu=/usr' '--with-kakasi=/
usr' '--enable-mbstring' '--enable- mbstr-enc-trans' '--enable-trans-sid
' '--enable-versioning'
(VINELINUXのサイトにあるVINE-PLUSのデフォルトのまま)


JPEGはうまく行くのに、PNGがうまく行かないものとして似た案件に
メーリングリストで
http://ns1.php.gr.jp/pipermail/php-users/2002-May/007739.html
というのがありましたが、レスはありませんでした。

以上です。解決方法はないものでしょうか?