jpg、png格式的图片转换成webp后颜色失真的问题
今天简单的试用了一下 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,对应的色彩区间是 -,而 WebP 采用的色彩格式是 YUV420P,对应的色彩区间是 -,也就是说如果单纯的转码,会丢失 -,- 的色彩,也就是出现了色差。 虽然从产品角度来看,这样的色差是可以容忍的,但是从技术角度,我们当然是希望可以有解决色差的方法,进一步跟进发现,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
效果好多了,色差就不显的那么明显了。 但是另一张图片上的粉红色的文字还是有明显的色差。
webp格式:https://img.alicdn.com/tps/i3/0/TB2flVsaOMnBKNjSZFCXXX0KFXa_!!0-juitemmedia.jpg_800x800q90.jpg_.webp
jpg格式:https://img.alicdn.com/tps/i3/0/TB2flVsaOMnBKNjSZFCXXX0KFXa_!!0-juitemmedia.jpg_800x800q90.jpg
jpg、png格式的图片转换成webp后颜色失真的问题的更多相关文章
- centos下 将(jgp、png)图片转换成webp格式
由于项目要求需要将jpg.png类型的图片 转换成webp格式,最开始使用了php gd类库里 imagewebp 方法实现,结果发现转换成的webp格式文件会偶尔出现空白内容的情况.像创建了一个透 ...
- 如何将JPG格式的图片转换成PNG格式
study from : https://jingyan.baidu.com/article/6079ad0e63a4fc28ff86db37.html
- ABBYY如何把图片转换成pdf格式
在制作工作文件的时候,有时候会遇到需要进行文件格式转换的情况,比较常见的文件格式转换就包含了Office与pdf格式之间的转换.但除此之外,图片与pdf格式也是可以进行转换的,那么图片要怎么操作,才能 ...
- 【caffe-windows】 caffe-master 之 训练自己数据集(图片转换成lmdb or leveldb)
前期准备: 文件夹train:此文件夹中按类别分好子文件夹,各子文件夹里存放相应图片 文件夹test:同train,有多少类就有多少个子文件夹 trainlabels.txt : 存的是训练集的标签 ...
- java将图片转换成二进制
package com.oumyye.图片; import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; imp ...
- C#图片转换成二进制流并且保存到sql server数据库
注意:我要存储文件二进制流的列的类型是text,不是image类型. 我已经实现了从数据库中读取text类型的二进制流,,现在就是不知道怎么存进去. 我的部分关键代码: StreamReader sr ...
- 【caffe-windows】 caffe-master 之图片转换成lmdb or leveldb
前期准备: 文件夹train:此文件夹中按类别分好子文件夹,各子文件夹里存放相应图片 文件夹test:同train,有多少类就有多少个子文件夹 trainlabels.txt : 存的是训练集的标签 ...
- 使用CSS将图片转换成黑白(灰色、置灰)z转
小tip: 使用CSS将图片转换成黑白(灰色.置灰) by zhangxinxu from http://www.zhangxinxu.com 本文地址:http://www.zhangxinxu.c ...
- Python:将utf-8格式的文件转换成gbk格式的文件
需求:将utf-8格式的文件转换成gbk格式的文件 实现代码如下: def ReadFile(filePath,encoding="utf-8"): with codecs.ope ...
随机推荐
- 坚定关于考研或者工作的决定:work
转眼之间,我已经夸过了大二结束的节点,已经是一个准大三了: 在这个岔路口,首要的选择就是考研和工作的选择:我也有过犹豫要不要考研,最终还是放弃了考研的想法,从考研的利弊两个方面来谈: 首 ...
- Vue之虚拟DOM
一.真实DOM和其解析流程? 浏览器渲染引擎工作流程都差不多,大致分为5步,创建DOM树——创建StyleRules——创建Render树——布局Layout——绘制Painting 第一步,用HTM ...
- selenium-启动浏览器(二)
selenium下启动浏览器,有两种方法 以 chromedrvier.exe 为例 1. chromedrvier.exe 与 python 启动程序 python.exe 在同一个目录下则可直接使 ...
- python之生成随机密码
https://www.cnblogs.com/evablogs/p/7096583.html 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 #!/usr/bin/py ...
- AjaxPro2完整入门教程
一.目录 简单类型数据传送(介绍缓存,访问Session等) 表类型数据传送 数组类型数据传送(包含自定义类型数据) 二.环境搭建 1.这里本人用的是VS2012. 2.新建一个空的Web项目(.NE ...
- SQL Server 2008初次启动
一.关于安装 SQL Server 数据库的安装,经过自己的安装,总体还是比较容易,没有太多难度,安装包在网上也有很多,在此,就跳过安装的这一步. 二.初次启动SQL Server 安装完成数据库后, ...
- 【记录】使用在线KMS激活Office系列
摘要 (有能力的请支持正版office) 网上一些激活工具可能捆绑了木马.病毒.使用激活工具有风险.使用在线KMS来激活则没有这个风险. 找到你的office安装目录 已管理员身份运行cmd输入:cd ...
- 在Windows 10中截取截图的6种方式 简介
在Windows 10中截取截图的6种方式 简介 截图对于不同的目的很重要.它可以用于捕获笔记本电脑上的任何内容的截图.所以,如果你使用Windows 10,你可能不知道如何截图,因为它是比较新的.因 ...
- java-----理解java的三大特性之多态
的java提高篇(四)-----理解的java的三大特性之多态 面向对象编程有三大特性:封装,继承,多态. 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据.对外 ...
- const关键字到底该怎么用
原文地址:https://www.yanbinghu.com/2019/01/28/7442.html 前言 我们都知道使用const关键字限定一个变量为只读,但它是真正意义上的只读吗?实际中又该如何 ...