首先,我想说我在 PHP GD 中阅读了很多关于透明的主题。例如:
使用PHP的GDlib imagecopyresampled时可以保留PNG图像透明度吗?
甚至在手册中发表评论。为了证明我不只是阅读,而是试图理解,下面我将链接粘贴到我发现的完全错误的评论。他写的东西与手册中关于imagesavealpha的说法完全相反(你必须取消设置alpha混合(imagealphablending($i'm,false))才能使用它。)
http://pl.php.net/manual/en/function.imagepng.php#85748
http://php.net/manual/en/function.imagesavealpha.php
我想保持透明,直到我保存图像。看代码(它只是一个例子):
$base = imagecreatetruecolor(500,500);
imagealphablending($base, false);
imagesavealpha($base, true);
$image = base64_decode($image);
$image = imageCreateFromString($image);
imagecopyresampled($base,$image,0,0,0,0,500,500,500,500);
//to this step I have transparent
//now if I save image everything is okay
$avatar = imagescale($avatar,101,101);//lost transpratent
imagepng($base,$savePath,0);
我知道我可以在 imagecopyresampled() 操作中缩放图像,并且不需要 2 次操作。但我在上面写的只是模式。
有人可以写下如何在每次操作后保持透明度。