我正在开发一款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 imageoptim或analogsenses)我应该通过将图片转换为sRGB来保存设备导出的图片,而不是嵌入颜色配置文件,但我无法找到我怎么能这样做?每次我尝试(我没有photoshop,所以我使用命令行ImageMagick),结果图片有以下信息,仍然无法在我的iPad(以及我测试的任何其他iPad)上正确显示:
我想将其转换为正确显示,任何想法都会受到欢迎:)
[编辑]我已成功使用以下参数使用photoshop的“save for web”选项获取正确的图像:
但是我仍然无法将这些设置自动应用到我的所有照片中.
解决方法
要阅读图像,只需使用:
UIImage *image = [UIImage imageWithContentsOfFile:path];
至于颜色配置文件问题,请尝试使用sips命令行工具来修复图像文件.就像是:
mkdir converted sips -m "/System/Library/ColorSync/Profiles/sRGB Profile.icc" *.JPG --out converted
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。