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

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です