Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS UIImage不显示JPEG图像_Ios_Uiimage_Png_Jpeg - Fatal编程技术网

iOS UIImage不显示JPEG图像

iOS UIImage不显示JPEG图像,ios,uiimage,png,jpeg,Ios,Uiimage,Png,Jpeg,我在iOS应用程序中显示某些图像时遇到问题。我已经将一些图形从PNG更改为JPG文件格式,当我删除项目中已有的PNG图像并添加新的JPG时,模拟器仍然显示旧的PNG图形。我对项目运行了“清理”并重置了模拟器的内容,现在它根本不想加载图像-[UIImage imagename:@“filename”]返回null 另一方面,如果我将这些图形保存为PNG,并将它们添加到项目中而不是JPEG,则可以很好地加载它们。但是这些图像都是照片,PNG版本比JPEG大7-8倍,所以我很想弄清楚为什么不能加载它们

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

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

编辑:在查看文档(似乎是第100次)之后,我意识到错误在于我没有指定扩展名。Supported Image Formats()列出了许多受支持的格式,UIImage reference指出:

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


我误解了这一点,即扩展名通常是可选的,但如果文件不是PNG,则必须包含它。因此,如果文件名为my_image.png,则可以将其作为@“my_image”或@“my_image.png”传递,但如果您有my_image.jpg,它将仅作为@“my_image.jpg”使用。

名为ImageOnly load*.png resorce的方法在项目中。试一试

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


您可以看到UIImage的“受支持的文件格式”,以了解IOS中支持某些格式。

感谢您的提示,并不是
imagename:
无法加载JPG图像,而是您必须显式指定@“filename.JPG”,我没有这样做。不,是一样的,仍然无法加载。当我尝试从resource加载JPG时,我遇到了与您相同的问题。也许您的问题是由于某些不同的原因造成的。对我来说,
[UIImage ImageName:@“flower.jpg”]
工作得非常好。苹果的文档声明,去掉.png只是一种方便(即ImageName:accepts.jpg扩展名)。此外,需要注意的是,imageNamed将首先在缓存中查找,而imageWithContentsOfFile:将不会,这是一个很大的区别。请尝试删除
build
文件夹,然后再次运行应用程序。