gif/jpegファイルの黒い背景を透明な背景に置き換えようとしています.PhotoShopを介して手動でこれを1つずつ行うのは面倒なので、PHPを使用しようと考えました. これは私が使用しているコードですが、機能しません。
何故ですか?
$image = imagecreatefromgif( 'items/item_spear06.gif' );
imagealphablending($image, true);
$transparentcolour = imagecolorallocate($image, 0,0,0);
imagecolortransparent($image, $transparentcolour);
そして、私が得た画像は、前回と同じ画像で、png形式だけでした。
アップデート
$image = imagecreatefromgif( 'items/sword/iv_sword_refined19.gif' );
//get pixel data
$rgb = imagecolorat($image, 10, 10);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;
$index = imagecolorexact($image, $r, $g, $b);
if ($index === -1) {
$index = imagecolorallocate($image, $r, $g, $b);
}
imagecolortransparent($image, $index);
var_dump($r, $g, $b);
// Save the image
imagepng($image, 'imagecolortransparent.png');
imagedestroy($image);
var_dump が返すint(0) int(0) int(0)
ようになりました:int(4) int(2) int(4)