web图像常见的应用策略与技巧 https://isux.tencent.com/articles/web-image-application.html
gifsicle | 建立及最佳化 GIF 圖片 |
---|---|
jpegtran | 最佳化 JPEG 圖片 |
optipng | 無失真 PNG 最佳化 |
pngquant | 失真 PNG 最佳化 |
圖片最佳化可以歸納為兩個標準:將用於為每個圖片像素進行編碼的位元組數最佳化,以及將像素總數最佳化:圖片的檔案大小就是像素總數乘以用於為每個像素進行編碼的位元組數。專注在這兩方面就對了!
響應式圖片的解決方案:利用html5 標籤在不同裝置載入不同解析度圖片
依不同的螢幕解析度指定使用不同的圖片
<picture>
<source srcset="large.jpg" media="(min-width: 960px)">
<source srcset="middle.jpg" media="(min-width: 720px)">
<source srcset="small.jpg" media="(max-width: 480px)">
<img src="default.jpg" alt="My default image">
</picture>
分辦高解析的螢幕
<picture>
<source srcset="large.jpg, large-2x.jpg 2x" media="(min-width: 960px)">
<source srcset="middle.jpg, middle-2x.jpg 2x" media="(min-width: 720px)">
<source srcset="small.jpg, small-2x.jpg 2x" media="(max-width: 480px)">
<img src="default.jpg" alt="My default image">
</picture>
分辦瀏覽器是否支援 webp 格式,反之則顯示 default.jpg。
<picture>
<source type="image/webp" srcset="default.webp">
<img src="default.jpg" alt="My default image">
</picture>
<picture>
結束前放上一個標準的 <img>
<picture>
,
在網頁中載入 picturefill.js 就可以了!<script src="picturefill.js"></script>
因為IE9無法判別在 <picture>
裡的 <source>
,所以我們必須多加一層 <video>
,好讓 IE9可以讀取到 <source>
的描述資訊。以下就是針對 IE9 的解決方法。
<picture>
<!--[if IE 9]><video style="display: none;"><![endif]-->
<source srcset="large.jpg" media="(min-width: 960px)">
<source srcset="middle.jpg" media="(min-width: 720px)">
<source srcset="small.jpg" media="(max-width: 480px)">
<!--[if IE 9]><video style="display: none;"><![endif]-->
<img src="default.jpg" alt="My default image">
</picture>