WebP格式介绍(附python版本代码用于对图像进行WebP编码和解码) |
您所在的位置:网站首页 › webp转换为png › WebP格式介绍(附python版本代码用于对图像进行WebP编码和解码) |
不管是 PC 还是移动端,图片一直是流量大头,如何保证在图片的精细度不降低的前提下缩小图片体积,成为了一个有价值且值得探索的事情。但如今对于 JPEG、PNG 和 GIF 这些图片格式的优化几乎已经达到了极致,为了进一步有效的压缩图片, Google 给了我们一个新选择:WebP。 WebP(发音:weppy)是一种同时提供了有损压缩与无损压缩(可逆压缩)的图片文件格式,是由Google在购买On2 Technologies后发展出来,以BSD授权条款发布,可以免费使用。根据Google较早的测试,WebP的无损压缩比网络上找到的PNG档少了45%的文件大小,即使这些PNG档在使用pngcrush和PNGOUT处理过,WebP还是可以减少28%的文件大小。因此,如果服务器需要存储大量的图片,那么使用WebP格式可以大幅减少存储开销,同时也可以降低网络传输流量。 目前,主流的浏览器如360浏览器、搜狗浏览器、火狐浏览器、谷歌浏览器都支持WebP格式。同时,谷歌也提供了安卓和iOS的WebP格式demo。因此,为了有效降低存储开销,使用WebP是一个较为稳妥成熟的方案。 下面给出Python版本的WebP图像编码和解码代码。 首先安装Pillow库: pip install pillow然后编码代码如下(实现jpg图片到WebP格式图片的转换): from PIL import Image imagePath = "1.jpg" #读入文件名称 outputPath = "1.webp" #输出文件名称 im = Image.open(imagePath) #读入文件 im.save(outputPath) #编码保存编码完成后可以直接用360浏览器打开1.webp文件,查看是否正常。 解码代码如下: from PIL import Image imagePath = "1.webp" #读入文件名称 outputPath = "1_new.jpg" #输出文件名称 im = Image.open(imagePath) #读入文件 im.save(outputPath) #解码保存采用上述方式只需要安装较常用的pillow库即可,但是无法有效的对图像编码质量进行设置,比如压缩因子等。下面介绍另一种更有效的方法:使用webp库。 webp在windows下面的安装比较麻烦,需要依赖C++环境进行编译。由于我电脑以前提前装好了VS2015,因此下面就比较简单了: pip install webp安装时可能会出现下面的错误: LINK : fatal error LNK1158: 无法运行“rc.exe” error: command 'E:\\toolplace\\VS2015\\VC\\BIN\\x86_amd64\\link.exe' failed with exit status 1158为了解决上述问题,只需要将C盘中C:\Program Files (x86)\Windows Kits\8.1\bin\x64 中的rc.exe和rcdll.dll文件复制到VS2015安装目录下,具体复制路径为:E:\toolplace\VS2015\VC\bin\x86_amd64 安装完成后就可以直接使用了。代码如下: # 编码 import webp from PIL import Image imagePath = "1.jpg" #读入文件名称 im = Image.open(imagePath) #读入文件 webp.save_image(im, '1.webp', quality=80) #压缩编码 设置压缩因子为80具体的webp使用请参考官方网址:https://github.com/anibali/pywebp
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |