有一次,我把所有的图片放在APP Bundle中。我使用 imageNamed 函数来获取图像。后来,我决定在应用程序启动时将一些图片复制到文档中。因此,我无法再使用 imageNamed 函数来获取图像。我使用 imageWithContentsOfFile 来获取图像:
NSString* documentsDirectoryPath =[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES) objectAtIndex:0];
UIImage* result =[UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/%@.%@", documentsDirectoryPath, fileName, extension]];
但是,imageWithContentsOfFile 返回低质量图像(非常模糊)。
我所有的图像都是128*128。
我使用以下代码来检测图片的大小:
NSData * imgData = UIImagePNGRepresentation(image);
NSLog(@"size : %d",[imgData length]);
我发现imageNamed返回的图像大小是imageWithContentsOfFile的3倍。
我疯了...救救我!多谢 ...
In the UIImage参考文档 http://developer.apple.com/library/ios/#documentation/uikit/reference/UIImage_Class/Reference/Reference.html您可以看到 imageNamed 和 imageWithContentsOfFile 之间的一些差异。
- imageWithContentsOfFile 不缓存图像,也不查找视网膜显示版本(@2x.png)。
- 相反,imageNamed 会缓存图像,并检查是否有 @2x 版本,以便在支持视网膜的设备中加载该版本。
知道了这一点,我能想到的对你的问题最合乎逻辑的解释是你正在使用视网膜设备并且拥有同一图像的视网膜版本(@2x)。这可以解释为什么图像
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)