自动支持图片webp格式压缩,图片服务器升级webserver
导读
webp server 是开源免费的。
图片服务器升级,自动支持webp,得先升级openresty
用go写的 webserver 请求到jpg png gif这些,再缓存起来,外面请求还是jpeg这些,实际先到go返回的webp格式,当浏览器不支持webp的才返回源文件。
提升加载时间,图片从434KB减少到340KB,1/4(25%)的压缩率。
根据 caniuse 的统计情况,主流浏览器(接近80%)都支持 webp 了,如果遇到 Safari 这样的奇葩,直接返回原图。
最重要的一点是——我们访问的 URL 可以完全不用改变,访客访问的依然是xxx.jpg ,但是得到的图片格式为:image/webp,而且体积减少了不少(25%)。
WebP的有损压缩算法是基于VP8视频格式的帧内编码[17],并以RIFF作为容器格式。[2] 因此,它是一个具有八位色彩深度和以1:2的比例进行色度子采样的亮度-色度模型(YCbCr 4:2:0)的基于块的转换方案。[18] 不含内容的情况下,RIFF容器要求只需20字节的开销,依然能保存额外的 元数据(metadata)。[2] WebP图像的边长限制为16383像素。
WebP 是一种衍生自 Google VP8 的图像格式,同时支持有损和无损编码。当使用有损模式,它在相同体积提供比 JPG 图像更好的质量;当使用无损模式,它提供比最佳压缩的 PNG 图像更小的体积。简单来说,WebP 图片格式的存在,让我们在 WebP 上展示的图片体积可以有较大幅度的缩小。网站上的图片资源如果使用 WebP,那么自然也会减少这些图片文件的加载时间,也就带来了网站加载性能的提升。
webp-sh
官网 webp.sh
GitHub webp-sh
webp server 顾名思义就是 webp 服务器啦,用于将网站里的图片(jpg、png、jpeg等)转换成 webp 图像编码格式,而且无须修改博客站点内图片的 url ,因此对于访问图片资源的客户端来讲是透明的。主流的 CDN 也支持这样类似的功能,比如 Cloudflare 的 Polish ,可以参考 Using Cloudflare Polish to compress images
webp server 有多种语言实现,并且这些仓库还都放在了 webp-sh 的 Organizations下。
webp_server_go
webp_server_rs
webp_server_node
webp_server_java
webp_server_python