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);

参考↓
http://q.hatena.ne.jp/1201945876