帮谷歌推广Webp图片格式之:Webp的格式转换

帮谷歌推广Webp图片格式之:Webp的格式转换

大家好,又见面了,我是全栈君。

参考谷歌官网:Webp: A new image format for the Web

Webp是Google强推的新一代网络图片格式,特点就是:高质量压缩。
能压缩多少呢?5MB的原图,不降低效果,转换成webp格式后大小是几百KB。100KB的图,转换后是9KB。

虽然目前所有主流浏览器都支持这种图片格式,但不幸的是所有主流系统如Mac、Win等都还没有默认支持打开它的程序,更无法显示它的预览、缩略图。

帮谷歌推广Webp图片格式之:Webp的格式转换

 

如果想查看,最简单的方法是把*.webp文件的打开方式设定为Chrome等浏览器,双击打开在浏览器中查看。

还有很多时候我们需要对这种文件进行转换。

Google提供了一组工具集合,叫libwebp,其中包括各种webp相关转换的命令:

  • cwebp — 将其它图片转为webp格式图片 (不包括GIF)
  • dwebp — 将webp格式图片转为其它格式图片
  • vwebp — webp图片浏览器
  • webpmux — WebP muxing tool
  • gif2webp — 将GIF转换为webp图片

下载安装参考官网:Downloading and Installing WebP

Ubuntu安装libweb库:

$ sudo apt-get install webp

Mac安装libwebp库:

$ brew install webp

注意:Homebrew安装的webp并不包括上面所有的工具,而只有cwebpdwebp

如果我们想要所有的工具,有两种方法:

  • 到官网找到自己OS对应版本的二进制包,直接运行使用
  • 自己编译

最简单就是到官网下载列表里找到自己的OS对应版本的二进制包,下载下来解压缩直接使用。
官方下载列表:https://storage.googleapis.co…

比如我的系统是Mac 10.12,那么就找到libwebp-0.6.0-mac-10.12.tar.gz这个压缩包下载:

cd /tmp wget https://storage.proxy.ustclug.org/downloads.webmproject.org/releases/webp/libwebp-0.6.0-mac-10.12.tar.gz tar xvzf libwebp-*.tar.gz cd libweb-*

然后在~/.zshrc~/.bash_profile中的PATH环境变量中加入刚才二进制文件包中的bin目录,或者直接设置alias,即可开始像别的命令开始用了。

如果没有自己所用系统的二进制包,那么就只能自己编译了。每种平台的编译方法不一样,需要按照官网方法一步一步安装。

编译方法参考官方:Compiling the Utilities

将各种图片转换为Webp格式

参考:https://developers.google.com…

目前输入格式支持:png, jpg

$ cwebp INPUT.png -o OUTPUT.webp

将Webp图片转换为其它格式图片

参考:https://developers.google.com…

$ dwebp INPUT.webp -o OUTPUT.png

将GIF转换为Webp格式

参考:https://developers.google.com…

$ gif2webp INPUT.gif -o OUTPUT.webp

浏览webp图片

这个命令不是在命令行终端里浏览图片,而是在桌面上弹出一个GUI窗口显示图片,所以需要依赖本地电脑的GUI桌面。

 
$ vwebp INPUT.webp

转载:https://segmentfault.com/a/1190000018178569
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/112176.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux心跳出血漏洞,heartbleeder 自动检测 OpenSSL 心脏出血漏洞 (附修复指南)[通俗易懂]

    linux心跳出血漏洞,heartbleeder 自动检测 OpenSSL 心脏出血漏洞 (附修复指南)[通俗易懂]heartbleeder可以探测你的服务器是否存在OpenSSLCVE-2014-0160漏洞(心脏出血漏洞)。什么是心脏出血漏洞?CVE-2014-0160,心脏出血漏洞,是一个非常严重的OpenSSL漏洞。这个漏洞使得攻击者可以从存在漏洞的服务器上读取64KB大小的内存信息。这些信息中可能包含非常敏感的信息,包括用户请求、密码甚至证书的私钥。据称,已经有攻击者在某宝上尝试使用漏洞…

    2022年7月16日
    12
  • 深入理解linux下write()和read()函数

    深入理解linux下write()和read()函数1、write()函数定义:ssize_twrite(intfd,constvoid*buf,size_tcount);函数说明:write()会把参数buf所指的内存写入count个字节到参数fd所指的文件内。返回值:如果顺利write()会返回实际写入的字节数(len)。当有错误发生时则返回-1,错误代码存入errno中。附加说明:(1)write…

    2022年5月26日
    35
  • java的System.getProperty()方法能够获取的值

    java的System.getProperty()方法能够获取的值

    2021年12月2日
    40
  • 等价类划分法-案例剖析-设计测试用例「建议收藏」

    等价类划分法-案例剖析-设计测试用例「建议收藏」目录等价类划分法概念有效等价类和无效等价类等价类设计测试用例步骤案例1案例2案例3等价类划分法概念等价类划分法是把所有可能的输入数据,即程序的输入数据集合划分成若干个子集即等价类,然后从每个等价类中选取少量具有代表性的数据作为测试用例。有效等价类和无效等价类有效等价类:只完全满足产品规则说明的输入数据,即有效的、有意义的输入数据的集合。利用有效等价类可以检验程序是否满足规则说明所规定的功能性要求。无效等价类:不满足程序输入要求或者无效的…

    2022年10月10日
    0
  • android定时器写法

    android定时器写法在Android开发中,定时器一般有以下3种实现方法:一、采用Handler与线程的sleep(long)方法二、采用Handler的postDelayed(Runnable,long)方法三、采用Handler与timer及TimerTask结合的方法下面逐一介绍:一、采用Handle与线程的sleep(long)方法Handler主要用来处理接受到的消息。这只是最主要

    2022年7月25日
    8
  • 双边滤波——原理及matlab实现

      思维闭塞时可外出采采风。1、双边滤波简介:   双边滤波(Bilateral filter)是一种非线性滤波方法(空间权值+相似权值)——空间权值:模糊去噪;相似权值:保护边缘。2、双边滤波原理  双边滤波具有两个权重:空间权重与相似权重  1)空间权重:与像素位置有关,为像素之间的距离(欧式距离,空间度量),故可定义为全局变量放在循环外,通常定义为…

    2022年4月9日
    62

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号