美文网首页让前端飞Web前端之路
对象存储图片处理后颜色失真

对象存储图片处理后颜色失真

作者: 矮子高 | 来源:发表于2019-06-04 15:19 被阅读2次

ISSUE

前段时间小弟接到一个issue是说在使用对象存储的图片处理后部分图片在手机上颜色失真了😂, 这个让我让很不理解,也排查了好长时间,大体就是下面这个效果

  • 下面这张没有处理的dio
dio_cmyk
  • 下面这张是由oss处理后的dio, (加了 ?x-oss-process=image/resize,m_lfit,limit_0,w_1000)
dio_cmyk

由上两张图可能看到的是,下面一张的dio明显更yellow 而且看起来更high 于上面一张

排查

当前大多数的网站都喜欢使用对象存储上的图片处理来压缩线上的图片资源,如调整大小和格式化图片格式为webp之类的更适合web所使用的格式。而且常见的对象存储都是这些参数的,一般就是在图片后面拼个query参数就可以,还是比较简单易用的😎;相关的文档比如:

我发现一但移除oss的处理参数后,颜色是正常的,但是为什么颜色会变呢,这个也排查了半天,最终我把图片下载下来后才发现问题所在。我移除了oss参数下载了图片然后用ps打开后发现了坑点如下图

ps_cmyk

如上图所示,这张图片的颜色模式cmyk 的,cmyk是用于是印刷用的四色模式, 而显示器所用的模式是rgb, 如下图

ps_rgb

这样的话解释就很合理了,当前的图像处理都是基于颜色通道处理的,rgb有红,绿,蓝三色通道,而cmyk 有青色,洋红,黄色及补色的黑色通道. 我们添加图像处理参数后, oss把cmyk 的四通道当成三通道处理,最终结果就是少了一个色彩通道了。

解决方案

需要ui同学修改图片模式为rgb后,重新上传, 具体操作就是在ps图像->调整->模式->rgb

cmyk_to_rgb

后记

上述的图片模式玩过ps,第一堂课就会说cmykrgb的关系的呢🤔

相关文章

  • 对象存储图片处理后颜色失真

    ISSUE 前段时间小弟接到一个issue是说在使用对象存储的图片处理后部分图片在手机上颜色失真了?, 这个让我让...

  • macOS High Sierra 下 Sketch 导入的位图

    最近很多同学升级macOS High Sierra后导致Sketch文件内图片出现颜色失真的现象。 macOS H...

  • 访问对象存储资源下载变成预览

    访问对象存储资源下载变成预览 上传文件、图片到棱束链对象存储后,使用浏览器访问棱束链对象存储资源,对象存储资源被强...

  • iOS上传图片颜色失真问题

    app上传前的原图与上传后CDN上压缩图对比颜色有失真具体描述可见:拒绝黯淡!教你还原iPhone 7照片本色 问...

  • 对象存储COS

    典型的对象 图片 视频 新的存储架构 数据平面 对象存储 文件存储 块存储存储架构 对象存储的功能 基本功能 对象...

  • UIColor学习笔记

    UIColor 存储颜色数据的对象,有时也存储不透明度。颜色对象可以通过多种方式创建,UIKit提供标准的系统颜色...

  • 《AWS 云计算实战》笔记(六)——对象存储

    对象存储—— S3 和 Glacier 对象存储 对象存储可以帮助用户存储图片、视频、文档和可执行文件。 在对象存...

  • php绘图图片失真问题处理

    开始没有创建一个真彩色的画布,然后两个图片合并的时候出现了图片失真。

  • 智能对象

    1.不能直接编辑,但经过反复缩小放大,图片不会失真;而普通图层经过缩小后再次放大图片会失真 2.共享源文件【批量修...

  • 图片失真

    解决图片失真只需要两行代码: cell.imageView.contentMode = UIViewContent...

网友评论

    本文标题:对象存储图片处理后颜色失真

    本文链接:https://www.haomeiwen.com/subject/wpzlxctx.html