ios – 从我的服务器加载的图片在iPad应用程序上的颜色错误

前端之家收集整理的这篇文章主要介绍了ios – 从我的服务器加载的图片在iPad应用程序上的颜色错误前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在开发一款iPad应用程序,用于展示摄影师的照片.这些照片会上传到网络服务器上,并通过应用程序直接提供,下载并使用以下方法显示
if([[NSFileManager defaultManager] fileExistsAtPath:[url path]]){
    CGImageSourceRef source = CGImageSourceCreateWithURL((CFURLRef)url,NULL);
    CGImageRef cgImage = nil;
    if(source){
        cgImage = CGImageSourceCreateImageAtIndex(source,(CFDictionaryRef)dict);
    }

    UIImage *retImage = [UIImage imageWithCGImage:cgImage];

    if(cgImage){
        CGImageRelease(cgImage);
    }
    if(source){
        CFRelease(source);
    }

    return retImage;
}

我可以观察到原始图片(从磁盘或Mac上的网络和摄影师的Mac上显示)和iPad上显示的照片颜色的显着变化(结果是错误的)应用程序,甚至在Safari中).

经过一些搜索,我发现了一些帖子,解释了iDevices如何不使用嵌入式颜色配置文件,所以我发现我是这样的.使用以下信息保存照片:

我发现了一些文章(例如this link from imageoptimanalogsenses)我应该通过将图片转换为sRGB来保存设备导出的图片,而不是嵌入颜色配置文件,但我无法找到我怎么能这样做?每次我尝试(我没有photoshop,所以我使用命令行ImageMagick),结果图片有以下信息,仍然无法在我的iPad(以及我测试的任何其他iPad)上正确显示

Here is a example of a picture that do not display correctly on the iPhone or iPad,but does on the web

我想将其转换为正确显示,任何想法都会受到欢迎:)

[编辑]我已成功使用以下参数使用photoshop的“save for web”选项获取正确的图像:

但是我仍然无法将这些设置自动应用到我的所有照片中.

解决方法

要阅读图像,只需使用:
UIImage *image = [UIImage imageWithContentsOfFile:path];

至于颜色配置文件问题,请尝试使用sips命令行工具来修复图像文件.就像是:

mkdir converted
sips -m "/System/Library/ColorSync/Profiles/sRGB Profile.icc" *.JPG --out converted

猜你在找的iOS相关文章