91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何借助CSS mask遮罩顯著優化PNG圖片的尺寸

發布時間:2021-03-19 09:39:13 來源:億速云 閱讀:234 作者:小新 欄目:web開發

這篇文章主要介紹如何借助CSS mask遮罩顯著優化PNG圖片的尺寸,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

一、無法進一步壓縮的PNG圖片

例如有如下所示的PNG圖片(尺寸1/2顯示了),使用頂級的PNG工具壓縮后還有122K。

如何借助CSS mask遮罩顯著優化PNG圖片的尺寸

原圖地址這里: https://image.zhangxinxu.com/image/blog/202005/card.png

PNG尺寸大小示意如下:

如何借助CSS mask遮罩顯著優化PNG圖片的尺寸

如果項目就一張這樣的圖還好,要是頁面一下子有很多這么個尺寸的PNG,那對首次加載的性能影響就非常明顯了,例如下圖4張卡片圖就有500K。

如何借助CSS mask遮罩顯著優化PNG圖片的尺寸

由于卡片的背景也是復雜圖形,邊邊角角必須要透明,改成JPG格式肯定不行(邊角會變成純色),就沒有什么可以進一步優化的方法嗎?

如何借助CSS mask遮罩顯著優化PNG圖片的尺寸

有,那就是借助CSS mask遮罩顯著優化PNG圖片的尺寸。

二、mask-image與PNG尺寸優化

mask-image 遮罩有這樣一個功能,只有遮罩圖片存在的區域才顯示,那豈不是如果是一個邊角透明的任意遮罩圖,就可以讓JPG圖片邊角的白色透明了。

方法可行,demo這里。

具體做法如下。

1. PNG轉JPG

先把PNG圖片保持成JPG,圖片質量50%就足夠了,如下圖所示:

如何借助CSS mask遮罩顯著優化PNG圖片的尺寸

此時,圖片的尺寸可以減小超過50%!

如何借助CSS mask遮罩顯著優化PNG圖片的尺寸

2. 根據PNG輪廓制作純色PNG

PNG圖片之所以尺寸大,就是因為色彩過于豐富,如果我們變成純色,尺寸可以降低100倍不止。

如何借助CSS mask遮罩顯著優化PNG圖片的尺寸

此時的純黑色顏色填充PNG圖片的尺寸不足1K:

如何借助CSS mask遮罩顯著優化PNG圖片的尺寸

3. 使用遮罩讓JPG邊角白色透明

假設JPG卡片圖使用的是 <img> 元素,HTML代碼如下:

<img src="card.jpg">

使用如下的CSS代碼:

img {
    -webkit-mask-image: url(card-mask.png);
    mask-image: url(card-mask.png);
}

就可以有和原始122K大小PNG圖片一樣的效果的了,邊角透明,尺寸還小。

因為card-mask.png的4個邊角是透明的,所以card.jpg應用card-mask.png作為遮罩圖片后,邊角也跟著透明了。

4. 遮罩圖片的跨域限制

隨著Chrome等瀏覽器的安全升級,遮罩圖片目前有跨域訪問限制,會有類似下面的錯誤提示:

Access to image at &lsquo;https://image.zhangxinxu.com/&hellip;/card-mask.png&rsquo; from origin &lsquo;https://www.zhangxinxu.com&rsquo; has been blocked by CORS policy: No &lsquo;Access-Control-Allow-Origin&rsquo; header is present on the requested resource.

我們可以把純色遮罩圖變成base64格式的,例如:

img {
    -webkit-mask-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZQAAAJ8BAMAAAArFErhAAAAFVBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAASAQCkAAAABnRSTlMKPam81se4yTyxAAADc0lEQVR42uzYMUqDQRRG0SSC9R8La0WwFgWX4DqM4Ox/CbZaOGnvJOfs4FaP7+3+OrytY9tNHcY6Hq4m5Was40zK7VjHy+WkfM5T7sc6zqQ8j3Wc5invYx1f85SxkmnJfqxku5Sz8t9h+RgL+5YSJKVISpGUIilFUoqkFP1O2a806Scb7Hj3NFb3+njcb0u9i6ZOUoKkFEkpklIkpUhKkZQiKUVSiqQUSSmSUiSlSEqRlCIpRVKKpBRJKZJSJKVISpGUIilFUoqkFEkpklIkpUhKkZQiKUVSiqQUSSmSUiSlSEqRlCIpRVKKpBRJKZJSJKVISpGUIilFUoqkFEkpklIkpUhKkZQiKUVSiqQUSSmSUiSlSEqRlCIpRVKKpBRJKZJSJKVISpGUIilFUoqkFEkpklIkpUhKkZQiKUVSiqQUSSmSUiSlSEqRlCIpRVKKpBRJKZJSJKVISpGUIilFUoqkFEkpklIkpUhKkZQiKUVSiqQUSSmSUiSlSEqRlCIpRVKKpBRJKZJSJKVISpGUIilFUoqkFEkpklIkpUhKkZQiKUVSiqQUSSmSUiSlSEqRlCIpP+zPsQAAAADAIH/raXQsg0RXRFdEV0RXRFdEV0RXRFdEV0RXRFdEV0RXRFdEV0RXRFdEV0RXRFdEV0RXRFdEV0RXRFdEV0RXRFdEV0RXRFdEV0RXRFdEV0RXRFdEV0RXRFdEV0RXRFdEV0RXRFdEV0RXRFdEV0RXRFdEV0RXRFdEV0RXRFdEV0RXRFdEV0RXRFdEV0RXRFdEV0RXRFdEV0RXRFdEV0RXRFdEV0RXRFdEV0RXRFdEV0RXRFdEV0RXRFdEV0RXRFdEV0RXRFdEV0RXRFdEV0RXRFdEV0RXRFdEV0RXRFdEV0RXRFdEV0RXRFdEV0RXRFdEV0RXRFdEV0RXRFdEV0RXRFdEV0RXRFdEV0RXRFdEV0RXRFdEV0RXRFdEV0RXRFdEV0RXRFdEV0RXRFdEV0RXRFdEV0S1Yy8nDAMxEIZnE8h63YFJIOeQIlJH/FL/JRjfjA06z6zn6+C/SEhOYeQURk2loHSvUPftKio25R3K5oqdXwhb4BQ+TmHkFEZOYeQURk5h6BRGC3B2DyU9EiWUVGRCyISU0mU8tpMyICP1Svoj9QgduxT1afxpJ6VH6hY6LpTy1HFc9isiYS/oBPlGYwAAAABJRU5ErkJggg==);
}

眼見為實,您可以狠狠地點擊這里: PNG圖片使用CSS遮罩尺寸優化demo

JPG格式卡片最終實現效果如下圖所示(四個角透明了):

如何借助CSS mask遮罩顯著優化PNG圖片的尺寸

三、優化后的效果對比

優化前后4張圖大小對比如下:

如何借助CSS mask遮罩顯著優化PNG圖片的尺寸

原來4張圖片支持是458K,優化后的圖片尺寸是197K+1K,大小減小了 56.8%

酷兒~

mask-image 這種移動端很早很早就已經支持了,這里使用的又是傳統語法,完全沒有任何兼容性問題,大家可以放心使用。

以上是“如何借助CSS mask遮罩顯著優化PNG圖片的尺寸”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

华坪县| 神农架林区| 二连浩特市| 五常市| 长丰县| 兖州市| 彝良县| 奉新县| 本溪| 蓝田县| 舟山市| 新源县| 漳平市| 昂仁县| 大宁县| 禹城市| 错那县| 屏边| 沂南县| 紫金县| 榆林市| 东丰县| 鄢陵县| 禹州市| 台前县| 临安市| 界首市| 江西省| 永年县| 白城市| 涞源县| 兰州市| 石阡县| 灌阳县| 万荣县| 西贡区| 丹寨县| 杨浦区| 彭水| 博爱县| 博客|