今天简单的试用了一下 cweb.exe 将 jpg, png 格式的图片转换成 webp 格式。

我今天下载的是当前最新版:1.0.0

cwebp 3.jpg  -q 85 -o 3.webp

发现图片中的女模特原来粉红色的指甲颜色有失真的情况:变暗了。

这个情况与使用 ffmpeg 将多张jpg图片生成 mp4 视频的时候出现的颜色失真有点类似。

jpg格式:

转换成webp格式后:

百度了一下 webp 颜色失真,找了一篇关于颜色失真的讨论,但没有答案:http://www.cocoachina.com/bbs/read.php?tid=332365

图片上传到服务器不能太大,所以先做等比例压缩,但是压缩后再转webp图片就变色。求大家指教。。。。

ps:不管裁剪,压缩,转webp后都会变色,只有原图转才没问题

另外一篇提到:http://weixin.niurenqushi.com/article/2017-05-23/4859725.html

因为 JPEG 采用的色彩格式是 YUVJ420P,对应的色彩区间是 0-255,而 WebP 采用的色彩格式是 YUV420P,对应的色彩区间是 16-235,也就是说如果单纯的转码,会丢失 0-15,236-255的色彩,也就是出现了色差。

虽然从产品角度来看,这样的色差是可以容忍的,但是从技术角度,我们当然是希望可以有解决色差的方法,进一步跟进发现,cwebp 提供了一个 “-metadata” 的参数,

可以将原图的额外信息复制到 WebP 图像上,虽然会增加额外的存储空间,但是可以保证视觉体验与原图一致,并且增加的空间也仅限于保存原图的额外信息那一部分。

通过增加"-metadata all", 转码后的 WebP 图像消去了色差

该参数有 “all, none, exif, icc, xmp” 五种可选项,默认是 none,支持 exif, icc, xmp 三种类型或其任意组合的信息保留,

例如,上述 JPEG 原图额外信息正是 ICC Profile 信息,可以使用"-metadata icc" 或者 "-metadata all" 保证转码质量。

但是我测试  -metadata all ,发现还是存在色差问题。

google了一下,找到一篇:https://groups.google.com/a/webmproject.org/forum/#!topic/webp-discuss/TtX0JB-kyUE

下面摘取了一部分内容:

'cwebp'的默认编码参数是使用有损编码。

这意味着源图像和压缩图像之间的小的(希望无法察觉的)差异是不可避免的。当提升-q参数值时,差异在幅度上越来越小。

尽管如此,即使在q= 100时,也可以得到+/- 1的差异(主要是因为颜色空间转移:RGB < - >YUV,这会产生一些舍入误差)。

如果压缩为JPEG格式,您会遇到类似的差异。

当使用 -lossless 选项时,颜色失真不会发生。

但是生成的webp文件很大。

2018-10-10

https://bugs.chromium.org/p/webp/issues/detail?id=232

-pre 4 或 -sharp_yuv效果好多了,色差就不显的那么明显了。

但是另一张图片上的粉红色的文字还是有明显的色差。

java png生成webp图片_jpg、png格式的图片转换成webp后颜色失真的问题相关推荐

  1. PHP实现图片格式(png,jpg,jpeg)转换成webp

    基本原理:前端使用ajax上传图片,后台php接收图片数据,进行处理,使用php扩展gd库将图片格式转换成webp,返回给前端.当然不使用ajax也可以,不是重点.ajax异步请求对用户更友好一些.3 ...

  2. centos下 将(jgp、png)图片转换成webp格式

    由于项目要求需要将jpg.png类型的图片  转换成webp格式,最开始使用了php gd类库里 imagewebp 方法实现,结果发现转换成的webp格式文件会偶尔出现空白内容的情况.像创建了一个透 ...

  3. matlab将图片转成eps,【MATLAB】论文图片处理(各种数据图转换成eps格式)

    最近跟eps图片杠上了..转载一个人人网上matlab到eps图片输出格式较好的方法 随着Latex在论文编辑和排版的日益普及,越来越多的人写文章都用Latex,数据图表作为论文不可缺少的一部分,如何 ...

  4. matlab eps格式,【MATLAB】论文图片处理(各种数据图转换成eps格式)

    最近跟eps图片杠上了..转载一个人人网上matlab到eps图片输出格式较好的方法 随着Latex在论文编辑和排版的日益普及,越来越多的人写文章都用Latex,数据图表作为论文不可缺少的一部分,如何 ...

  5. java 字符串转成图片_java 转换图片为字符串,将字符串转换成图片显示

    java 转换图片为字符串,将字符串转换成图片显示, 该方法只适用于比较小的图片传输,50K以内: try{ // 将图片转换成字符串 File imgFile = new File("f: ...

  6. cad转图片,cad图纸该如何转换成svg格式图片呢?

    CAD转SVG格式图片非 常实 用方便,优点是可以让用户直接用代码来描绘图像,而且用任 何文字处理工具都可以打开SVG图像.CAD制图工作中,我们需要把CAD转换成图片.cad图纸该如何转换成svg格 ...

  7. OpenCV应用:将jpg格式的图片转为bmp格式的图片

    将jpg格式的图片转为bmp格式的图片 之前看到一篇博文,说用cvLoadImage函数读出来的是IplImage类的值,同时cvSaveImage的输入也是IplImage类的值,这就可以通过这两个 ...

  8. 【C语言】之把yuyv422格式的图片转换为pnm格式的图片

    平台:Linux /***************************************************************************** 文件名:Yuyv422T ...

  9. xml文件转换成图片_如何把pdf文件转换成图片?

    pdf文件怎么转成JPG图片呢?相信有不少人在迷惑,可能还在想着截图等操作来完成转换,但如果是截图成JPG图片后的效果可能很差,并没有之前pdf文件那么清楚.那这样往往打印出来的效果也不怎么理想,那怎 ...

最新文章

  1. 二分类变量相关性分析spss_spss:两个有序分类变量的相关分析『kendallstau-b相关系数』...
  2. 两种超级智能,哪一个对人类未来影响更为深远?
  3. 053_Unicode字符官方标准四
  4. Android SurfaceView的生命周期
  5. 认识 linux sysfs文件系统
  6. 怎么做mysql查询系统_mysql数据库系统学习(一)---一条SQL查询语句是如何执行的?...
  7. Java加密与解密的艺术~MD算法实现
  8. 【v8】一些关于内存泄漏的踏坑
  9. 持续集成部署Jenkins工作笔记0015---编辑SVN钩子程序
  10. [加密]SSL/TLS原理详解
  11. 提高Web页面的性能(一)
  12. JBoss AS 7中Domain Mode 和 Standalone Mode
  13. java类和对象及python中的类似实现
  14. TVS管参数说明以及如何选型
  15. 操作系统µC/OS的故事,最终Micrium被Silicon Labs收购
  16. convert 8bit/10bit RGB444,YUV444,NV12,NV21 to PNG
  17. java file文件大小_Java实现获取文件大小的几种方法
  18. 嵌入式计算机应用方面,嵌入式实时软件在计算机中的应用研究
  19. 通达信指标公式编写答疑汇总(三)
  20. 杜教筛 (包括线筛) 莫比乌斯函数前缀和 欧拉函数前缀和 因数和函数前缀和 因子个数前缀和 ( 分析 )...

热门文章

  1. 参考文献中不同符号的含义
  2. 为GET和POST请求添加请求参数和请求头
  3. linux基础:shell中的sh与bash区别与常用命令
  4. flutter 吸顶效果
  5. html文本框后面紧挨着按钮,HTMLbody标签中的相关标签2
  6. 史上最牛、最适合自学的尚硅谷《全套Java视频教程》
  7. BroadcastReceiver 广播
  8. JavaSE 第 3 章 数组
  9. ARM uboot 的移植3 -从 uboot 官方标准uboot开始移植
  10. Mobius反演(莫比乌斯反演)