自動支持圖片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
更多內容參考:
讓圖片飛起來 oh-my-webp.sh ! | 木子
https://blog.k8s.li/oh-my-webpsh.html