Xcode 6(beta 3):CSI中不支持的像素格式或无法从csi位图数据创建未切割的图像

时间:2014-07-09 01:04:23

标签: ios7 uiimage swift xcode6

在Swift的Xcode 6 beta 3中加载带有png图像的UIImages,如下所示:

    PipsImg = (UIImage(named: "Die-1"))

    PipsImg = [(UIImage(named: "Die-1")),(UIImage(named: "Die-2"))]
从存储在Images.xcassets文件夹中的相关图像

,我收到以下致命的运行时错误:

 SimpleAnimation[680:60b] Unsupported pixel format in CSI
 SimpleAnimation[680:60b] Unable to create unsliced image from csi bitmap data.

这似乎在测试版4中得到了解决,但有时会留下一些,因为有时这些回归

5 个答案:

答案 0 :(得分:35)

这是由Xcode 6中的错误引起的(此时为beta 3)。它似乎只在您的构建目标是iOS 7.x

时才会出现

要解决此问题:

1)从Images.xcassets容器中删除文件。

2)将图像直接放入"支持文件"夹。

注意:不需要添加" .png"代码中的扩展,使其成为一个干净的解决方法。

请为Apple创建一个RADAR(错误报告)。

答案 1 :(得分:23)

XCode 6.0.1仍然存在这个问题。 如果您将.jpg添加到Images.xcassets并尝试将应用程序安装到iOS 7设备。

修复它只需将.jpg转换为.png

答案 2 :(得分:17)

Apple工程师的回复:

问题是iOS 7应用程序无法在CAR文件中包含JPEG图像。 actool应该将JPEG作为松散图像复制到应用程序的文件夹中。要解决此问题,您应该将图像转换为PNG或将JPEG包含为资产目录之外的资源。

答案 3 :(得分:0)

我通过以下方式解决了这个问题:

  1. 运行iOS模拟器
  2. 通过“iOS模拟器>重置内容和设置”菜单重置内容和设置。
  3. 有效。

答案 4 :(得分:0)

在Xcode中,我们现在可以对图像资源进行切片。如果添加切片,则资产目录中图像的相应json将调整信息大小。这可能看起来像这样的

"resizing" : {
    "mode" : "3-part-vertical",
    "center" : {
      "mode" : "fill",
      "height" : 6
    },
    "capInsets" : {
      "top" : 16,
      "bottom" : 6
    }
  }

iOS 7.0无法正确处理切片。因此,从json中删除切片信息可能有助于解决问题(在我的情况下,这是一个解决方案)。