我有一个奇怪的情况。
看起来背景不总是透明的,但在某种程度上它被破坏了...
这是代码:
$angle = !empty($_GET['a']) ? (int)$_GET['a'] : 0;
$im = imagecreatefromgif(__DIR__ . '/track/direction1.gif');
imagealphablending($im, false);
imagesavealpha($im, true);
$transparency = imagecolorallocatealpha($im, 0, 0, 0, 127);
$rotated = imagerotate($im, $angle, $transparency);
imagealphablending($rotated, false);
imagesavealpha($rotated, true);
imagepng($rotated);
imagedestroy($rotated);
imagedestroy($im);
header('Content-Type: image/png');
我完全不理解发生了什么... 是我错过了什么吗?
编辑1
添加了那个函数:
if(!function_exists('imagepalettetotruecolor'))
{
function imagepalettetotruecolor(&$src)
{
if(imageistruecolor($src))
{
return true;
}
$dst = imagecreatetruecolor(imagesx($src), imagesy($src));
$black = imagecolorallocate($dst, 0, 0, 0);
imagecolortransparent($dst, $black);
$black = imagecolorallocate($src, 0, 0, 0);
imagecolortransparent($src, $black);
imagecopy($dst, $src, 0, 0, 0, 0, imagesx($src), imagesy($src));
imagedestroy($src);
$src = $dst;
return true;
}
}
但是现在卡在这个正方形,不想透明…