画像変換後の黒い背景を削除

1298 ワード

phpのGD関数を使用してthumbnailを生成すると、元のピクチャに白い領域があれば、生成された新しいピクチャは黒くなり、透明ではありません.
オリジナル画像
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