我现在对TinyMCE的Archiv-Plugin有一个问题。当上传图片时,它会为图片创建缩略图。但对于透明的PNG,背景是黑色的。我想,好吧,我想添加一些函数来保持透明度,但毕竟它不起作用。此外,我还阅读了有关stackoverflow的所有PHP文档和问题/答案,但它们对我没有帮助。
我已经将问题简化为几行代码。这并没有真正创建缩略图,但有相同的问题:所有具有透明背景的PNG都有一个黑色背景:
$thumb = imagecreatefrompng($originalPath);
imagesavealpha($thumb, true);
imagealphablending($thumb, false);
imagepng($thumb, $thumbPath, 0);当我创建一个新的空图像并用透明填充它时,它就会起作用。但是,当从任何现有的透明PNG创建它时,它会失败。我错过了什么吗?
如果这个问题不能快速解决,我将扩展存档插件,以选择使用ImageMagick...
发布于 2015-01-18 14:23:00
上周我也遇到了这个问题。经过几个小时的搜索和研究,我想这里有一些东西可以解释这个问题。
首先,png有几种格式类型:基于调色板的PNG和真彩色png。此外,有3种方法可以实现透明的PNG。
基于
这就是为什么有时你的代码能正常工作,有时你的代码不能正常工作的原因。文章Transparency Concept in PNG详细解释了这三种类型的不同之处。
我已经试过你的代码了。它将完美地工作时,你的源png图像是真彩色PNG与alpha通道。否则,输出图像的透明部分将为黑色。
这里有两张png图片。底部有黑色区域的是Type2格式。另一种是RGBA格式。


发布于 2012-09-25 20:40:28
不要担心Andreas,你的脚本运行得很好,我刚刚测试过了。
我想你可以检查一下你正在使用的PHP的GD版本。我有GD版本2。
https://stackoverflow.com/questions/12567633
复制相似问题