正如许多人抱怨的那样,在视网膜显示屏的Apple SDK中似乎有一个bug,imageWithContentsOfFile实际上不能自动加载2倍的图像。
我偶然发现了一篇很好的文章,介绍了如何创建一个函数来检测UIScreen比例因子,并正确加载低分辨率或高分辨率图像( http://atastypixel.com/blog/uiimage-resolution-independence-and-the-iphone-4s-retina-display/ ),但是该解决方案加载了2倍的图像,但仍然将图像的比例因子设置为1.0,这导致了2倍的图像缩放(所以,比它看起来要大4倍)
imageNamed似乎可以准确地加载低分辨率和高分辨率的图像,但对我来说是没有选择的。
有没有不使用imageNamed或imageWithContentsOfFile自动加载的低/高分辨率图像的解决方案?(或者最终解决如何使imageWithContentsOfFile正确工作的问题)
发布于 2010-09-18 18:30:40
好的,迈克尔在这里找到了实际的解决方案:http://atastypixel.com/blog/uiimage-resolution-independence-and-the-iphone-4s-retina-display/
他发现UIImage具有"initWithCGImage“方法,该方法也接受比例因子作为输入(我猜这是您可以设置比例因子的唯一方法)。
[UIImage initWithCGImage:scale:orientation:]这似乎很有效,你可以自定义加载你的高分辨率图像,只需将比例因子设置为2.0
imageWithContentsOfFile的问题是,由于它目前不能正常工作,即使它被修复了,我们也不能信任它(因为一些用户仍然会在他们的设备上使用较旧的iOS )
发布于 2013-02-22 06:23:36
我们刚在工作的时候遇到了这个。这是我的工作,似乎是站得住脚的:
NSString *imgFile = ...path to your file;
NSData *imgData = [[NSData alloc] initWithContentsOfFile:imgFile];
UIImage *img = [[UIImage alloc] initWithData:imgData];发布于 2010-12-15 12:17:34
从iOS 4.1和更高版本开始,imageWithContentsOfFile可以正常工作(考虑使用正确比例的@2x图像)。
https://stackoverflow.com/questions/3739812
复制相似问题