画像変換後の黒い背景を削除
1298 ワード
phpのGD関数を使用してthumbnailを生成すると、元のピクチャに白い領域があれば、生成された新しいピクチャは黒くなり、透明ではありません.
オリジナル画像
thumbnail
明らかにこのような黒い背景が現れることを望んでいません.透明なはずです.
では、どのように対処すればいいのでしょうか.
赤のコードセグメントは、黒の背景を削除し、透明にする処理方法です.
参考になりましたhttp://stackoverflow.com/questions/2611852/imagecreatefrompng-makes-a-black-background-instead-of-transparent
オリジナル画像
thumbnail
明らかにこのような黒い背景が現れることを望んでいません.透明なはずです.
では、どのように対処すればいいのでしょうか.
$im = imagecreatefrompng($url);
if ($im) {
// echo 'created image handle
';
global $width, $height;
$width = imagesx($im);
$height = imagesy($im);
$x = $width/2;
$y = $height/2;
$dst = imagecreatetruecolor($x, $y);
// $background = imagecolorallocate($im, 0, 0, 0);
// imagecolortransparent($im, $background);
// imagealphablending($im, false);
// imagesavealpha($im, true);
imagecopyresampled($dst, $im, 0, 0, 0, 0, $x, $y, $width, $height);
// header("Content-Type:image/jpeg");
imagepng($dst, 'imgdst.png');
// imagejpeg($dst);
imagedestroy($dst);
imagedestroy($im);
}
赤のコードセグメントは、黒の背景を削除し、透明にする処理方法です.
参考になりましたhttp://stackoverflow.com/questions/2611852/imagecreatefrompng-makes-a-black-background-instead-of-transparent