【问题标题】:Array Doesn't load PNGs Exported from After Effects: ios, xcode数组不加载从 After Effects 导出的 PNG:ios、xcode
【发布时间】:2012-09-12 20:55:03
【问题描述】:

我们的平面设计师正在向我们发送名为“hide_00~iphone.png”、“hide_00@2X~iphone.png”等的.PNG

他正在从 After Effects 中导出图像。我将它们添加到项目中并尝试在初始化时将它们加载到数组中。每次他的所有文件都会引发异常。现在,如果我进入并将查找器中的文件重命名为完全相同的名称,一切都编译得很好。我不知道这里发生了什么。在我重命名它们之前,Xcode 无法在文件系统中找到它们。但是这个名字和他发给我的名字完全一样。我检查了他的文件命名周围的空白,但一切看起来都很好。

有人知道 After Effects 是否在图像中添加了奇怪的标题信息吗?或者这听起来对任何人来说都很熟悉。我们正在处理大量图像,我不想手动重命名它们。

【问题讨论】:

  • 您能否将其中一张图片放在公共 DropBox 文件夹中,然后将 URL 附加到该文件?您应该做的是获取一个失败的文件,对其进行压缩、解压缩,并确保它仍然无法正常工作 - 然后上传 .zip 文件(否则,如果 zip/unzip “修复”了我们无法帮助的问题。)
  • 是的,这里是公共链接:dl.dropbox.com/u/538153/hide_step_seq_06%7Eiphone.png 忘记提到的一件事也很奇怪。使用 imageWithName 加载图像很好,但我使用 imageWithFileContents 加载它们。所以一种数组技术是可以的,另一种失败了——除非我重命名它们
  • 查看您刚刚发布的 URL - 它不是我要求的 zip,但 iphone.png 文件以 %7E 为前缀 - 介于 06 和 phone.png 之间。
  • 对不起dl.dropbox.com/u/538153/hide_step_seq.zip 我尝试压缩和解压缩文件,但这没有帮助。我还尝试了从 Photoshop 中进行批量重新保存。谢谢。
  • 在您上面的评论中,zip unzip 没有被提议作为问题的“修复”,而是一个测试以确保这样做并不能解决问题,因此其他人无法测试.

标签: objective-c ios arrays image after-effects


【解决方案1】:

所以我只是使用了 imageNamed 并且图像加载得很好。因此,显然您按路径/名称加载图像的例程是有缺陷的。您可以发布它并对其进行评估 - 但这与“After Effects”无关。

编辑:为了记录,我的系统是 Lion Xcode 4.4.1,我的项目设置为 iOS 5.1。我从保管箱中获取了您的文件,并验证在我的项目中我可以按照您的尝试加载图像:

for (int i = 6; i < 7; i++) {
    NSString *path = [NSString stringWithFormat:@"hide_step_seq_%02d", i];
    UIImage *image = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:path  ofType:@"png"]];
    NSLog(@"PATH %@ image=%@", path, image);
}
2012-09-13 07:15:23.241 Searcher[58114:f803] PATH hide_step_seq_06 image=<UIImage: 0x6a4cb30>

那么,从这里到哪里去呢?我试图帮助这里的几个被@2x 或~iphone 后缀烫伤的人。出于某种原因,有些人似乎永远无法让它工作 - 我能想到的是系统深处有一些标志被切换并且无法取消切换。

我的建议是尝试使用实际的完整文件名 - 尝试附加 ~iphone 看看是否可行。

您也可以在终端中执行 'ls *.png | od -c' 在更改名称之前和之后,以验证字符是否完全相同。

我对此的最后一个想法是文件具有许多属性:创建时间、上次访问、上次修改、扩展属性、权限等。由于某种原因,这些值中的一个可能会(虽然不太可能)阻塞系统尝试使用 ~iphone 后缀。

我真的希望我能进一步帮助你。如果你想把一个简单的小项目放在一起,只是尝试打开一些图像但它失败了,把整个项目压缩起来,放在保管箱上,我非常愿意在我的系统上运行它来尝试并复制问题。你也可以像我在上面的代码中做的那样,验证路径看起来不错并且图像为零。

【讨论】:

  • 但您还没有阅读该帖子。代码不会改变,图像命名会改变,然后加载正常。 code NSMutableArray *seq = [[NSMutableArray alloc]init]; for (int i = 0; i code
  • 此外,(如上所述)它确实可以使用 imageNamed 加载。这就是奇怪的事情。它是 imageWithContentsOfFile 不加载图像 - 直到它被重命名。任何人都可以重新创建吗?
  • 不客气,感谢您的感谢。 'imageNamed' 的缺点是这些图像会被系统缓存,所以我完全理解你为什么要在尝试时加载它们。如果您有办法让它发挥作用,请更新您的问题。
猜你喜欢
  • 2020-12-02
  • 1970-01-01
  • 2019-02-21
  • 1970-01-01
  • 2011-08-05
  • 1970-01-01
  • 1970-01-01
  • 2013-09-30
  • 1970-01-01
相关资源
最近更新 更多