[php] GDを使用してpngを透過のままリサイズするコード
GDを使用してpngを透過のままリサイズするコードは以下の通り
//read the file as image
$readimage = @get_image($imagefile, $image_type);
//prepare output image
$outputimage = @imagecreatetruecolor($resize_width, $resize_height);
//resize & copy
if($readimage) {
//ブレンドモードを無効にする ←これで透過
imagealphablending($outputimage, false);
//完全なアルファチャネル情報を保存するフラグをonにする←これで透過
imagesavealpha($outputimage, true);
//$successed = imagecopyresized($outputimage, $readimage, 0, 0, 0, 0, $resize_width, $resize_height, $image_width, $image_height);
$successed = imagecopyresampled($outputimage, $readimage, 0, 0, 0, 0, $resize_width, $resize_height, $image_width, $image_height);
} else {
$successed = FALSE;
}
// release data
if(isset($readimage)) {
imagedestroy($readimage);
}