代码之家  ›  专栏  ›  技术社区  ›  ragnarius

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

  •  3
  • ragnarius  · 技术社区  · 15 年前

    我试图画一个有一些透明区域的图像。 我加载图像时使用

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

    然后用

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

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

    问题是,在模拟器上一切正常,但当我在iPhone上运行应用程序时,透明色变黑了!有人能指出我的错误吗?

    3 回复  |  直到 13 年前
        1
  •  2
  •   Austin    13 年前

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

    参考文献 this thread 供讨论和澄清。

    • 编辑:为了清楚起见,.png没有“alpha通道”,所以chris的回答是误导性的。只需确保在启用透明度的情况下以24位格式保存。
        2
  •  3
  •   Chris    15 年前

    今天我的照片也有同样的问题。我在图形转换器中创建了我自己的图片。

    我的解决方案是在图片中添加一个alpha通道。我使用在picture=>alpha channel=>创建透明度的alpha channel中找到的命令对graphicConverter执行了此操作。可能是命令的名称与我使用德语设置的应用程序的名称不同。

    希望这有帮助。

        3
  •  0
  •   ragnarius    15 年前

    我通过将其加载到ColorSync并保存来解决我的问题。