从Web下载的图像大于资产中的相同图像

时间:2017-04-27 18:25:18

标签: ios objective-c uiimage uikit

在我的iOS应用中,我试图将一些图像从xcassets中移除到从我的Wordpress下载。我将xcassets上的@ 2x图像上传到wordpress,然后我正在运行iPhone 7模拟器。但是,当我使用从服务器下载的图像时,我得到一个更大的图像,然后当我使用来自xcassets的完全相同的图像。

cell.imageView.image = [UIImage imageNamed:@"testImage"];

// is smaller in size than

NSString *documentDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
NSString *path = [documentDir stringByAppendingString:[NSString stringWithFormat:@"/%@.png", @"testImage"]];
NSData *data = [NSData dataWithContentsOfFile:path];
cell.imageView.image = [UIImage imageWithData:data];

有关导致此问题的任何想法?或者如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您写道:

  

我从xcassets上传了@ 2x图片

这就是原因!

假设您的图片尺寸为400x400px(像素)。从资产目录中加载时,iOS已经知道图像必须被解释为200x200pt(点!),因为您在资产目录中将其定义为@ 2x。

使用代码中的imageWithData方法将服务器从服务器加载到图像中时,将其解释为@ 1x - > 400x400pt(点)。

解决方案:

使用scale参数告诉图像加载图像的比例因子。

[UIImage imageWithData:data scale:2.0f] 

请参阅Apple API Documentation