iOS UIImage不显示JPEG图像

时间:2013-06-20 14:23:53

标签: ios uiimage png jpeg

我在iOS应用中显示某些图片时遇到问题。我已将部分图形从PNG更改为JPG文件格式,当我删除项目中已有的PNG图像并添加新的JPG时,模拟器仍显示旧的PNG图形。我在项目上运行'clean'并重置模拟器的内容,现在它根本不想加载图像 - [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”。

2 个答案:

答案 0 :(得分:7)

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

  NSString *filePath = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"imageName"] ofType:@"jpg"];
  UIImage *theImage = [UIImage imageWithContentsOfFile:filePath];

答案 1 :(得分:2)

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

您会看到UIImage的“支持的文件格式”,以便了解IOS支持某种格式。