PHPカットサムネイルによるpng,gif透明図生成時の黒色背景問題の解決
786 ワード
最近ではプロフィールアップにカットを使っていますが、GIFやPNGが透明であれば、カット後は黒い背景図になります.
ソリューションは2種類あります.
1.背景図は白い背景を塗りつぶします.
2.画像の透明な通路を設定します.
以上の2つの方式はいずれもテストに成功した.
ソリューションは2種類あります.
1.背景図は白い背景を塗りつぶします.
$white = imagecolorallocate($dstim,255,255,255);
imagefilledrectangle($dstim,0,0,$width,$height,$white);
imagecolortransparent($dstim,$white);
2.画像の透明な通路を設定します.
$img = imagecreatefrompng($src);
imagesavealpha($img,true);// ;
$thumb = imagecreatetruecolor(300,300);
imagealphablending($thumb,false);// , , $img , ;
imagesavealpha($thumb,true);// , $thumb ;
imagecopyresampled($thumb,$img,0,0,0,0,300,300,300,300);
imagepng($thumb,"temp.png");
以上の2つの方式はいずれもテストに成功した.