透明色在模拟器上工作,但在iPhone上变黑

时间:2009-09-20 20:50:41

标签: iphone cocoa-touch image transparency

我正在尝试绘制一个具有透明区域的图像。 我使用

加载图像
image = [UIImage imageNamed:@"testimage.png"];

并使用

绘制它
[image drawAtPoint:CGPointMake(0,0)];

我在其上绘制图像的UIView不是不透明的(并且它具有透明的背景颜色)。

问题是在模拟器上一切正常,但是当我在iPhone上运行应用程序时,透明色变为黑色!任何人都可以查明我的错误吗?

3 个答案:

答案 0 :(得分:3)

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

我的解决方案是在图片中添加Alpha通道。我用GraphicConverter使用Picture =>中的命令做到了这一点。 Alpha通道=>创建具有透明度的Alpha通道。当我使用具有德语设置的应用程序时,命令可能会有不同的名称。

希望这有帮助。

答案 1 :(得分:2)

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

参考this thread进行讨论和澄清。

  • 编辑:为了清楚起见,.PNG没有“alpha通道”,因此Chris的回答是误导性的。请确保在启用透明度的情况下以24位格式保存。

答案 2 :(得分:0)

我通过将其加载到colorsync然后保存它来解决我的问题。