透明色可以在模拟器上使用,但在iPhone上会变黑
问题描述:
我正在尝试绘制具有某些透明区域的图像。 予加载使用透明色可以在模拟器上使用,但在iPhone上会变黑
image = [UIImage imageNamed:@"testimage.png"];
的图像并使用
[image drawAtPoint:CGPointMake(0,0)];
在其上予绘制图像的的UIView不是不透明绘制它(它有一个透明背景颜色)。
问题是,一切工作正常在模拟器上,但是当我在我的iPhone上运行应用程序的透明颜色变成黑色!任何人都可以指出我的错误?
答
这个问题的正确答案是你保存图像的.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然后保存。
嗯,我现在已经尝试了另一个透明的测试图像,实际上在我的iPhone上正常工作!在iPhone上显示不正确的图像通过irfanView变得透明。它在Mac的封面流程中看起来很透明,但我猜iPhone不接受各种PNG:s .... – ragnarius 2009-09-21 17:11:54
你是如何使用irfanView对图像应用透明的? – 2010-06-21 07:12:56