我正在尝试将 gif/jpeg 文件中的黑色背景替换为透明背景,并且因为通过 PhotoShop 手动执行此操作非常累人,所以我想尝试使用 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)