PHP PNG画像のリサイズ
PNG画像リサイズするプログラムのメモ
<?php $img = ImageCreateFromPNG($_SERVER["DOCUMENT_ROOT"]."/images/".$_GET["name"].".png"); $width = ImageSx($img); $height = ImageSy($img); $resize_num = $_GET["size"]/$width;//拡大縮小率(幅を基準とする) $out = ImageCreateTrueColor($width*$resize_num, $height*$resize_num); //--背景が黒くなるので追加 ImageAlphaBlending($out, false); ImageSaveAlpha($out, true); $fillcolor = imagecolorallocatealpha($out, 0, 0, 0, 127); imagefill($out, 0, 0, $fillcolor); //背景が黒くなるので追加-- ImageCopyResampled($out, $img, 0,0,0,0, $width*$resize_num, $height*$resize_num, $width, $height); header('Content-Type: image/png'); ImagePNG($out); ?>
JPEGのリサイズで使用していたプログラムを流用したが、
白い背景(透過だったかも)が黒くなってしまうので、下記のようにして対応。
ImageAlphaBlending($out, false); ImageSaveAlpha($out, true); $fillcolor = imagecolorallocatealpha($out, 0, 0, 0, 127); imagefill($out, 0, 0, $fillcolor);