我有一个白色背景的 image.png,上面有一些透明度。
我尝试将图像转换为jpg:
$data = file_get_contents('image.png');
$resource = imagecreatefromstring($data);
imagejpeg($resource); //> I TRIED WITH QUALITY = 100 TOO
问题是png的透明度现在jpg有一个非常大的黑色区域。这是 jpg 的外观:
http://img861.imageshack.us/img861/20/context.jpg
有什么办法可以解决问题吗?
编辑1:
正如 Abiusx 所建议的,我也试过这个:
$data = file_get_contents('image.png');
$resource = imagecreatefromstring($data);
imagealphablending($data, false);
imagesavealpha($data, true);
imagejpeg($resource);
但结果是一样的。请注意源 .png 图像是:
(来源:tipradar.com)
感谢帕特里克评论:这里的诀窍:GD!将 png 图像转换为 jpeg 并使 alpha 默认为白色而不是黑色