日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

图片压缩之 PNG

發(fā)布時間:2025/3/15 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 图片压缩之 PNG 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
作者:程志達
鏈接:https://zhuanlan.zhihu.com/p/19570424
來源:知乎
著作權歸作者所有。商業(yè)轉載請聯(lián)系作者獲得授權,非商業(yè)轉載請注明出處。

PNG(Portable Network Graphics) 是一種大家經常使用的位圖格式。

PNG 的特點

  • 位圖
  • 支持半透明 (BMP不支持,JPEG不支持,GIF不支持,TIFF支持)
  • 支持無損壓縮 (BMP不支持,JPEG支持,GIF不支持,TIFF支持)
  • 不支持動畫 (A-PNG沒有得到廣泛應用,GIF是事實標準)
  • 不支持有損壓縮, 確切地說,是沒有可調整的質量設置。(JPEG支持,WebP支持)

PNG 的用途

  • 有透明度的圖標
  • 有透明度的界面元素,如按鈕,背景
  • 對圖片尺寸不敏感的一般用途

PNG 的壓縮

PNG-8 壓縮

雖然 PNG 的自帶無損壓縮使它比 BMP 和 TIFF 已經「聰明」了很多,但對于網(wǎng)絡傳播仍然嫌大。PNG-8 是唯一可行的壓縮方法。

大家可能立即想到的就是 Photoshop 自帶的 PNG-8 壓縮。

它的原理是縮減圖片的色彩空間,8位就是2的8次方種顏色,也就是256色(或更少)。對于一般的按鈕和界面圖標,可能只有幾種顏色;但對于照片來說,256色肯定完全不夠用。為了能顯示過渡色,有兩種辦法來欺騙眼睛。一種是 Diffusion, 有一點像點彩畫的做法,用兩種相近顏色的來拼湊。它的參數(shù)是 Dither,Dither參數(shù)越大,混合得越均勻,但文件也會變大。

另外一種就是用圖案,看上去不太自然,現(xiàn)在很少用。

Photoshop 自帶的 PNG-8 壓縮有嚴重的缺點,就是它的透明只能全透明,不能半透明。雖然這樣的格式支持廣泛,包括 IE 6 都支持。但也大大限制了 PNG 的使用范圍。

透明PNG的壓縮

如果不考慮 IE6 的話,又希望在保留透明度同時壓縮大小,那么好消息是還可以用第三方工具,在 Mac 上有 ImageAlpha ,網(wǎng)頁上有 TinyPNG 。它的原理是讓 PNG-8 的 256 色中包含透明色。

可以用的壓縮工具:


  • 原始的 pngquant
  • http://pngnq.sourceforge.net
  • pngquant — lossy PNG compressor 升級版的 pngquant
  • PNGOUT

壓縮參數(shù)

這些庫都有很多參數(shù)可以調節(jié)。有興趣的同學可以去親自嘗試一下。我知道你們還是想看現(xiàn)成的結果。

原大 94KB, 無壓縮 12KB, pngQuant 壓縮后 5KB 幾乎無變化, WebP壓縮后 3KB 有明顯瑕疵。

首先,用 ImageMagick 把圖標改小:這里附加了一點銳化和高級的重采樣算法,可以保證圖片壓小了之后清晰。用默認的算法有時圖片會糊,但這樣會稍微增加計算量。

convert ${input} -resize 68x -unsharp 0x1+0.3 -filter Lanczos ${out}

然后,用 pngquant 把PNG壓縮:

pngquant -f --speed 1 --ext opt.png ${input}

如果嫌壓縮的機器太閑,最后還可以用PNGOut壓縮掉10%左右:

pngout -ks -f6 ${input}

要用 WebP 嗎?

WebP 是谷人希 (谷歌!人類的希望!) 推行的自造輪子,它的特點是,支持半透明的有損壓縮,像是 PNG 和 JPEG 的雜交品種。技術小白鼠看到 Spec 容易流口水,也容易嘗試使用,因為它號稱可以比 png 小 45%,比 JPEG 小 30% 什么的。

WebP lossless images are 26% smaller in size compared to PNGs. WebP lossy images are 25-34% smaller in size compared to JPEG images at equivalent SSIM index.

但我不建議大規(guī)模使用,原因無非:

  • 支持差。Chrome 當然能用,但包括 Photoshop 在內的大多數(shù)程序打不開。
  • 壓得慢。親測。人家可能用了高級算法,但對于服務器來說,這點很蛋疼。
  • 邏輯復雜。和理想不同,為了萬無一失,你需要兩套圖片。一套 WebP,一套普通的 PNG 或者 JPEG。這就要壓兩次,還要存兩次,還要加判斷的邏輯。
  • 先把手頭的 PNG 和 JPEG 壓好再說吧!
    不就是為了讓圖小一點嗎,你已經試了所有的辦法了嗎?壓縮參數(shù)都優(yōu)化過了嗎?你用 WebP 默認的參數(shù)去壓,也不會比別人優(yōu)化過的 PNG 和 JPEG 參數(shù)效果好、文件小的。把參數(shù)吃透,壓到極限,你還覺得文件太大?

其實除了 WebP,還有類似 JPEG 2000 之類的輪子從來就沒有推開,我悲觀的認為,現(xiàn)有的格式已經足夠好,新格式都沒有極其顯著的優(yōu)越性,而大家的網(wǎng)速還在提升,帶寬成本在下降。于是它們只能算生不逢時吧。

轉載于:https://www.cnblogs.com/hubl/p/5748685.html

總結

以上是生活随笔為你收集整理的图片压缩之 PNG的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。