首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何让[UIImage imageWithContentsOfFile:]和高分辨率图像正常工作

如何让[UIImage imageWithContentsOfFile:]和高分辨率图像正常工作
EN

Stack Overflow用户
提问于 2010-09-18 07:55:08
回答 6查看 27.1K关注 0票数 12

正如许多人抱怨的那样,在视网膜显示屏的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正确工作的问题)

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-09-18 18:30:40

好的,迈克尔在这里找到了实际的解决方案:http://atastypixel.com/blog/uiimage-resolution-independence-and-the-iphone-4s-retina-display/

他发现UIImage具有"initWithCGImage“方法,该方法也接受比例因子作为输入(我猜这是您可以设置比例因子的唯一方法)。

代码语言:javascript
复制
[UIImage initWithCGImage:scale:orientation:]

这似乎很有效,你可以自定义加载你的高分辨率图像,只需将比例因子设置为2.0

imageWithContentsOfFile的问题是,由于它目前不能正常工作,即使它被修复了,我们也不能信任它(因为一些用户仍然会在他们的设备上使用较旧的iOS )

票数 13
EN

Stack Overflow用户

发布于 2013-02-22 06:23:36

我们刚在工作的时候遇到了这个。这是我的工作,似乎是站得住脚的:

代码语言:javascript
复制
NSString *imgFile = ...path to your file;
NSData *imgData = [[NSData alloc] initWithContentsOfFile:imgFile];
UIImage *img = [[UIImage alloc] initWithData:imgData];
票数 11
EN

Stack Overflow用户

发布于 2010-12-15 12:17:34

从iOS 4.1和更高版本开始,imageWithContentsOfFile可以正常工作(考虑使用正确比例的@2x图像)。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3739812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档