質問: phpで画像を縮小するときに、出来るだけ劣化させないで 縮小する方法はありますでしょうか。 宜しくお願いします。 現状 $src=@imagecreatefromjpeg(test.jpg); $dst=imagecreatetruecolor(100,120); imagecopyresized($dst,test.jpg,0,0,0,0,100,120,200,240); imagejpeg($dst,test.jpg); 環境 fedora7 apache php mysql
回答: わたしは下記の方法でデジカメの画像を幅400ピクセルに縮小しています。 ファイルサイズはだいたい30キロバイト以下ですが そんなに劣化してる印象はありません。よければ参考にしてみてください。 list($width, $height) = getimagesize($tmp_name); //幅を400ピクセルに縮小 $newheight = abs(400 * $height / $width); //空の画像を作成 $image_p = imagecreatetruecolor(400, $newheight); //元の画像をコピー $image = imagecreatefromjpeg($tmp_name); //サイズ変更 imagecopyresampled($image_p, $image, 0, 0, 0, 0, 400, $newheight, $width, $height); //ダミ imagejpeg($image_p, SAVE_PHOTO_PATH."$name");