2010-04-12 129 views
3

我正在使用GD输出一个图像,这是一个truecolor + alpha通道PNG文件,使用imagepng很好。不过,我希望能够输出兼容ie6的256色PNG。根据imagetruecolortopalette的官方文档:PHP + GD:imagetruecolortopalette不保持透明度

代码已被修改,以尽可能保留最终的调色板中的alpha通道信息,并尽可能保留颜色。

但是,我发现这个函数的结果根本没有保留任何透明度。我用this firefox image将文本叠加在上面作为测试,并且所有功能都给了我一个白色背景和一个奇怪的深蓝色边框。我知道我不希望保留完整的Alpha通道,但是肯定这个功能至少会在透明背景中起作用。有什么我失踪?我能采取哪些替代方法?

回答

0

看看imagesavealpha在php文档 - 我认为这是你在找什么。

+0

使用此功能关闭Alpha通道不会将以前透明的图片部分正确转换为透明颜色。 – AlexMax 2010-04-12 14:09:35

3

我最近碰到过这样的事情 - 我只能得到透明使用工作:

imagesavealpha($im, true); 
imagecolortransparent($im, imagecolorat($im,0,0)); 

我知道,在所有的图片,左上角的像素是背景颜色。 这些被称为imagetruecolortopalette和imagepng之前。

+0

我试过了,看起来不错,但由于某种原因,我的(WAMP)安装上的PNG最终完全乱码。我还试图将真彩色转换为调色板256 PNG图像,同时保留单一的alpha颜色。 – 2012-04-30 14:06:12

+0

对不起,这个结果似乎只在Corel PhotoPaint中打开时看起来很垃圾,另一方面Photoshop看起来很好(包括透明度)。 – 2012-04-30 14:15:50