4

我无法在我的 iOS 应用程序中显示某些图像。我已将一些图形从 PNG 更改为 JPG 文件格式,当我删除项目中已有的 PNG 图像并添加新的 JPG 时,模拟器仍然显示旧的 PNG 图形。我在项目上运行“清理”并重置模拟器的内容,现在它根本不想加载图像 -[UIImage imageNamed:@"filename"]返回 null。

另一方面,如果我将这些图形保存为 PNG,并将它们而不是JPEG 添加到项目中,它会很好地加载它们。但是这些图像是摄影的,PNG 版本比 JPEG 大 7-8 倍,所以我真的很想弄清楚为什么它不会加载它们。

编辑:在查看文档(似乎是第 100 次)之后,我意识到错误是我没有指定扩展名。支持的图像格式(http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIImage_Class/Reference/Reference.html)列出了很多受支持的格式,UIImage 参考说:

在 iOS 4 及更高版本上,如果文件为 PNG 格式,则无需指定 .PNG 文件扩展名。

我误以为扩展名通常是可选的,但如果文件不是 PNG,则必须包含它。因此,如果文件名为 my_image.png,则可以将其传递为 @"my_image" 或 @"my_image.png",但如果您有 my_image.jpg,则它只能作为 @"my_image.jpg" 工作。

4

2 回答 2

7

方法 imageNamed: 仅在项目中加载 *.png 资源。尝试

  NSString *filePath = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"imageName"] ofType:@"jpg"];
  UIImage *theImage = [UIImage imageWithContentsOfFile:filePath];
于 2013-06-20T14:37:56.780 回答
2

http://developer.apple.com/library/ios/documentation/UIKit/Reference/UIImage_Class/Reference/Reference.html

您看到 UIImage 的“支持的文件格式”就知道 IOS 支持某些格式。

于 2013-06-20T14:50:54.370 回答