[PHP-users 13882] GDを利用してイメージ変更処理後の色

fukuzawa php-users@php.gr.jp
Wed, 12 Mar 2003 03:39:09 +0900


皆さん、こんにちは、福沢と申します。
今回、サーバー移行のため、新しいサーバーを構築しています。
サーバー仕様:RedHat8.0 Apache-1.3.27 PHP-4.3.0
phpinfoの情報:
'./configure' '--with-pgsql' '--with-apxs=/www/bin/apxs' '--enable-mbstring'
'--enable-mbregex' '--without-mysql' '--enable-trans-sid'
'--enable-track_vars' '--with-gd' '--with-jpeg-dir=/usr/local/' '-with-png'
'--with-zlib'
GD:
GD Support  enabled
GD Version  bundled (2.0 compatible)
GIF Read Support  enabled
JPG Support  enabled
PNG Support  enabled
WBMP Support  enabled

JPEGイメージのサイズを変更するため、下記のようにしています:
<?
header("Content-type: image/jpeg");
$src_im = @imagecreatefromjpeg ($imgname);
if (!$src_im):
else:
	$size = GetImageSize ($imgname);
	$dstW=round(sqrt(($size[0]*18000)/$size[1]));
	$dstH=round(sqrt(($size[1]*18000)/$size[0]));
	if($dstW>150){
		$dstW=150;
		$dstH=$size[1]*150/$size[0];
	}
	if($dstH>120){
		$dstH=120;
		$dstW=$size[0]*120/$size[1];
	}
	$dst_im = imagecreate($dstW,$dstH);
	imagecopyresized($dst_im,$src_im,0,0,0,0,$dstW,$dstH,$size[0],$size[1]);
	imagejpeg($dst_im,'',100);
	imagedestroy($dst_im);
	imagedestroy($src_im);
endif;
?>

問題点:
変換されたイメージの色は元の画像と比べると、色の鮮やかさがかなり落ちっていま
す。
例:ブルーが多い画像なら、変換された画像はブルーのフィルムに被されているよう
にみえます。
黒の服を着ていた人の画像なら、白黒の画像になったりする。
また、同じのやり方で、JPEGからPNGに変換する時も同じ現象が起きていま
す。

同じソースは今まで使用しているサーバー上に問題が有りません。
このサーバーはLaser5 PHP-4.0.6 Apache/1.3.20です。
phpinfoの情報:
'./configure' '--with-pgsql' '--with-apxs=/usr/local/apache/bin/apxs'
'--enable-mbstring' '--enable-mbregex' '--without-mysql'
'--enable-trans-sid' '--enable-track_vars'
'--with-jpeg-dir=/usr/local/src/jpeg-6b' '--with-gd=/usr/local/'
'--with-png-dir=/usr/local' '--with-zlib-dir=/usr'
GD:
GD Support enabled
GD Version 1.6.2 or higher
JPG Support enabled
PNG Support enabled
WBMP Support enabled

PHPのマニュアルのイメージ関数を再度調べましたが、このような現象の解決策は
見つからず。
誠に恐縮ですが、どなたが解決策またはアドバイスをしていただけないでしょうか?
よろしくお願いいたします。