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

  • このエントリーをはてなブックマークに追加

コメントをどうぞ

メールアドレスが公開されることはありません。