为了账号安全,请及时绑定邮箱和手机立即绑定

imageNamed的大小是imageWithContentsOfFile的3倍,请问什么原因?

imageNamed的大小是imageWithContentsOfFile的3倍,请问什么原因?

iOS
万千封印 2023-05-01 11:10:53
我本来把图片资源放在APP里面,然后用UIImage * image = [UIImage imageNamed:imgName]];来取得image。这两天,我把原本在app里面的资源图片,在程序启动是copy到document目录里面。这样就没有办法用imageNamed方法来取图片了。我就用NSString* documentsDirectoryPath =[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES) objectAtIndex:0];UIImage* result =[UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/%@.%@", documentsDirectoryPath, fileName, extension]];方法来取image。但这样返回的image非常模糊,我用128*128像素的,显示在64*64的imageView中。原来imageNamed方法没有问题。我用NSData * imgData = UIImagePNGRepresentation(image);NSLog(@"size : %d",[imgData length]);方法来看取回的image大小,imageNamed的大小是imageWithContentsOfFile的3倍,请问什么原因?
查看完整描述

1 回答

?
翻阅古今

TA贡献1780条经验 获得超5个赞

imageNamed:这个方法的文档上面写着,使用这个方法的时候,如果设备的屏幕分辨率的倍率是2倍的话(目前包括iPhone 4、4S、5和iPad 3、4),那么这个方法会自动加载名字带有@2x的图片文件。例如,在iPhone 4上运行:

[UIImage imageNamed:@"button.png"];

那么,实际加载的是button@2x.png这个文件,而不是button.png。而imageWithContentsOfFile:则没有这个机制,你指定的是什么文件名,它加载的就是哪个文件。


查看完整回答
反对 回复 2023-05-03
  • 1 回答
  • 0 关注
  • 217 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信