objective-c - iOS 模拟器中图片颜色比原始图片颜色深,如何获取原始UIImage?

【字号: 日期:2023-12-13浏览:59作者:雯心

问题描述

环境:Xcode 7 + iOS9 模拟器问题:使用IB方式构建UI设置图片的时候,发觉模拟器中UIImageView中的图片颜色比原始图片颜色深。而我希望得到的是原始图片的效果。

新建了一个Demo,只放了一个ImageView。图片颜色有差异,模拟器中的图片颜色(左图)明显比 IB中原始图片(右图)的颜色深。

objective-c - iOS 模拟器中图片颜色比原始图片颜色深,如何获取原始UIImage?

做过以下尝试,均未达到目的:

在xcassets文件中设置了图片的渲染模式,设置图片渲染模式为Original Image(如下图),结果没有效果。objective-c - iOS 模拟器中图片颜色比原始图片颜色深,如何获取原始UIImage?

我尝试使用纯代码的方式设置UIImage结果还是没有效果。

UIImage *image = [UIImage imageNamed:@'personal']; image = [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

3.然后使用方法 imageWithContentsOfFile: 获取,结果还是一样没有效果。

NSString *path = [[NSBundle mainBundle] pathForResource:@'personal.png' ofType:nil]; UIImage *imageOfFile = [UIImage imageWithContentsOfFile:path]; self.imageView.image = imageOfFile;

问题解答

回答1:

以下是我测试的结果图片:

对比图片,上面为RTImageAssets生成的@2X,下面的为我自己生成的@2X。在IB中显示时没色差,在模拟器中时就存在色差了。objective-c - iOS 模拟器中图片颜色比原始图片颜色深,如何获取原始UIImage?

图片文件列表

objective-c - iOS 模拟器中图片颜色比原始图片颜色深,如何获取原始UIImage?

相关文章: