透明色可以在模拟器上使用,但在iPhone上会变黑

问题描述:

我正在尝试绘制具有某些透明区域的图像。 予加载使用透明色可以在模拟器上使用,但在iPhone上会变黑

image = [UIImage imageNamed:@"testimage.png"]; 

的图像并使用

[image drawAtPoint:CGPointMake(0,0)]; 

在其上予绘制图像的的UIView不是不透明绘制它(它有一个透明背景颜色)。

问题是,一切工作正常在模拟器上,但是当我在我的iPhone上运行应用程序的透明颜色变成黑色!任何人都可以指出我的错误?

+0

嗯,我现在已经尝试了另一个透明的测试图像,实际上在我的iPhone上正常工作!在iPhone上显示不正确的图像通过irfanView变得透明。它在Mac的封面流程中看起来很透明,但我猜iPhone不接受各种PNG:s .... – ragnarius 2009-09-21 17:11:54

+0

你是如何使用irfanView对图像应用透明的? – 2010-06-21 07:12:56

这个问题的正确答案是你保存图像的.PNG格式。如果保存为PNG-8,则会更频繁地遇到此问题,因为它只支持1种透明颜色。如果您打开.PNG文件,然后将其重新保存为24位格式,您将获得真正的透明度。

参考this thread供讨论和澄清。

  • 编辑:只是要清楚,.PNG没有'alpha通道',所以克里斯的答案是误导。只要确保在启用透明度的情况下保存为24位格式。

今天我和我的照片有同样的问题。我在GraphicConverter中创建了我自己的照片。

我的解决方案是为图片添加一个alpha通道。我使用Picture => Alpha Channel =>创建透明度Alpha通道中的命令,使用GraphicConverter完成了此操作。这可能是因为我在德语语言设置中使用该应用程序时,该命令对您有不同的名称。

希望这会有所帮助。

+0

太棒了。感谢您的详细解释。 – benvolioT 2011-01-24 05:51:10

我解决了我的问题,将它加载到colorsync然后保存。