在網(wǎng)站開發(fā)中,壓縮圖片是非常重要的一步。這是因?yàn)閳D片往往占用了網(wǎng)頁中大部分的帶寬,而壓縮圖片可以有效減小圖片的體積,從而加快網(wǎng)頁的加載速度,提高用戶體驗(yàn)。
此外,壓縮圖片還有助于減少服務(wù)器的存儲空間和流量消耗,降低網(wǎng)站的運(yùn)營成本。
因此,在網(wǎng)站開發(fā)中,我們強(qiáng)烈建議開發(fā)人員對圖片進(jìn)行壓縮處理,以提高網(wǎng)站的性能和用戶體驗(yàn)。
網(wǎng)頁開發(fā)中常見的圖片格式有哪些?
· JPEG:JPEG是一種常用的有損壓縮圖片格式,適用于網(wǎng)絡(luò)和打印使用。它能夠以較小的體積產(chǎn)生質(zhì)量不錯(cuò)的圖片,但不支持透明度。
· PNG:PNG是一種標(biāo)準(zhǔn)的網(wǎng)絡(luò)圖片格式,支持透明度。它提供無損壓縮,能夠保留圖片的細(xì)節(jié),但體積相對較大。
· WEBP:WebP是谷歌在2010年開發(fā)的一種圖片格式,專為提供更好的無損和有損壓縮的網(wǎng)絡(luò)圖片而設(shè)計(jì)。它能夠以更小的體積產(chǎn)生質(zhì)量不錯(cuò)的圖片,并支持透明度和動畫。
這些格式各有優(yōu)缺點(diǎn),可以根據(jù)實(shí)際需求去選擇合適的格式。
如何壓縮圖片?
壓縮圖片的方式分為在線壓縮和本地壓縮:
· 在線壓縮:比較常用的是 tinypng,壓縮 png 格式的圖片壓縮率很高,能夠最大的保留圖片的細(xì)節(jié),壓縮后體積很小,這里是比較推薦的,不過在線壓縮也有限制,免費(fèi)版是只支持最多同時(shí)上傳20張圖片,單張最大的5mb的圖片。
· 本地壓縮:本地壓縮的方式有很多種,這里不一一舉例了,這里著重介紹下 FFmpeg 和 pngquant
1. FFmpeg
FFmpeg是一個(gè)免費(fèi)且開源的軟件項(xiàng)目,包含一套用于處理視頻、音頻和其他多媒體文件和流的庫和程序。它的核心是命令行工具ffmpeg,專為處理視頻和音頻文件而設(shè)計(jì)。它被廣泛用于格式轉(zhuǎn)換、基本編輯(修剪和連接)、視頻縮放、視頻后期制作效果和標(biāo)準(zhǔn)符合性(SMPTE、ITU),同時(shí)也可以用它來對圖片進(jìn)行處理,這一款功能非常強(qiáng)大的軟件,這里我們主要用來處理壓縮 jpg 圖片。
可以前往官網(wǎng),安裝完成后,在 windows 環(huán)境下,我們可以通過一段簡單的 shell 命令腳本來批量處理圖片。
例子一:批量壓縮當(dāng)前目錄的 jpg 圖片
for file in *.jpg; do
ffmpeg -i "$file" -q:v 3 "${file%.*}-compressed.jpg"
done
· for file in *.jpg; do:這一行開始一個(gè)循環(huán),遍歷當(dāng)前目錄下所有以.jpg結(jié)尾的文件。
· ffmpeg -i "$file" -q:v 3 "${file%.*}-compressed.jpg":這一行使用ffmpeg壓縮每個(gè)JPG文件。-i "$file"指定輸入文件,-q:v 3指定輸出質(zhì)量為中等(取值范圍為2-31,值越小質(zhì)量越高),${file%.*}-compressed.jpg指定輸出文件名,它在輸入文件名的基礎(chǔ)上添加了-compressed后綴。
· done:這一行結(jié)束循環(huán)。
這段代碼的作用是將當(dāng)前目錄下的所有JPG圖片壓縮為中等質(zhì)量,并在文件名后添加-compressed后綴。
例子二: 將當(dāng)前目錄下的所有PNG圖片轉(zhuǎn)換為WebP格式
for file in *.png; do
ffmpeg -i "$file" -quality 50 "${file%.*}.webp"
done
· for file in *.png; do:這一行開始一個(gè)循環(huán),遍歷當(dāng)前目錄下所有以.png結(jié)尾的文件。
· ffmpeg -i "$file" -quality 50 "${file%.*}.webp":這一行使用ffmpeg將每個(gè)PNG文件轉(zhuǎn)換為WebP格式。-i "$file"指定輸入文件,-quality 50指定輸出質(zhì)量為50,${file%.*}.webp指定輸出文件名,它將輸入文件名中的.png替換為.webp。
· done:這一行結(jié)束循環(huán)。
這段代碼的作用是將當(dāng)前目錄下的所有PNG圖片轉(zhuǎn)換為質(zhì)量為50的WebP格式。
2. pngquant
pngquant是一個(gè)用于有損壓縮PNG圖片的命令行工具和庫。它通過將圖片轉(zhuǎn)換為更高效的8位PNG格式(帶alpha通道),顯著減小文件大?。ㄍǔ1?4/32位PNG文件小60-80%)。壓縮后的圖片完全符合標(biāo)準(zhǔn),并且被所有Web瀏覽器和操作系統(tǒng)支持。
pngquant提供了高質(zhì)量的調(diào)色板生成,使用先進(jìn)的量化算法支持伽馬校正和預(yù)乘alpha。它還提供了獨(dú)特的抖動算法,不會向圖像中添加不必要的噪聲。您可以配置質(zhì)量水平,自動找到所需的顏色數(shù)量,并跳過無法以所需質(zhì)量轉(zhuǎn)換的圖像。
可以前往官網(wǎng),安裝完成后,在 windows 環(huán)境下,我們可以通過一段簡單的 shell 命令腳本來批量處理圖片。
例子一:批量壓縮當(dāng)前目錄的 png 圖片
for file in *.png; do
pngquant --ext .png --force "$file"
done
· for file in *.png; do:這一行開始一個(gè)循環(huán),遍歷當(dāng)前目錄下所有以.png結(jié)尾的文件。
· pngquant --ext .png --force "$file":這一行使用pngquant壓縮每個(gè)PNG文件。--ext .png指定輸出文件擴(kuò)展名為.png,--force指定覆蓋原始文件,"$file"指定輸入文件。
· done:這一行結(jié)束循環(huán)。
這段代碼的作用是將當(dāng)前目錄下的所有PNG圖片壓縮,并覆蓋原始文件。
綜上所述,在網(wǎng)站開發(fā)中,我們應(yīng)該盡量處理壓縮圖片,降低網(wǎng)站的帶寬和存儲空間需求,從而減少頁面加載所需的時(shí)間,提高用戶體驗(yàn)。
如沒特殊注明,文章均為方維網(wǎng)絡(luò)原創(chuàng),轉(zhuǎn)載請注明來自http://m.oulysa.com/news/6796.html