圖片基礎知識及不同格式的特點介紹
點陣圖和向量圖
點陣圖:也叫做點陣圖、畫素圖,基於影像的矩形柵格內的每個畫素值來進行編碼。點陣圖的最小單位是畫素,每一個畫素對應一個色彩值,透過畫素的色彩值展示出影像。
點陣圖的畫素特點導致它縮放的時候影像會失真。常見格式如 jpg、png。
向量圖:也叫向量圖,透過使用點、線和多邊形來描繪影像,一般應用於簡單形狀的圖形,並且能保證在縮放的時候不失真。
解析度、畫素與顏色
點陣圖放大後,會看到有小格子,最終結果是一個個畫素點的格子,每個格子為 1*1 的畫素點。
一張圖有多少個畫素點,與圖片的解析度有關,即常說的圖片寬高尺寸,比如一張圖的寬是 1920、高是 1080,則它擁有 1920 * 1080 = 2073600 個畫素點。這裡的 1920 * 1080 就是影像的解析度。
而畫素作為基本單位,在影像中通常是使用不同的顏色模型來描述,最常見的顏色模型就是 RGB,加上透明通道就是 RGBA。顏色模型的知識可見 顏色模型相關知識解讀。
RGBA 使用紅、藍、綠三色通道,再加上透明通道,總共四個通道分量,每個分量多使用 1 個位元組來表示。
每個位元組有 8 個位元位,即 1 byte = 8bits,二進位制取值在 00000000-11111111,就有 0-255 共 256 種。關於位元組與二進位制的知識可見 深入理解前端位元組二進位制知識以及相關 API。
RGB 顏色模型三個通道分量,每個都有 256 種,即 RGB = R(8) * G(8) * B(8) = 256 * 256 * 256,共 1600 多萬色,這裡三通道各 8 位,對應的 24 點陣圖,即位深度。
RGB 三通道再加上 Alpha 透明通道,即多了 1 個位元組 8 位,就對應了 32 點陣圖。
色彩深度
色彩深度又叫作位深度,是針對點陣圖的,表示點陣圖中儲存 1 個畫素的顏色所需要的二進位制位的數量。
它是點陣圖中的一個重要指標,一般色彩深度越高,可用的顏色就越多,圖片的色彩也就會越豐富,對應的影像資料更多,影像的體積就更大。
bmp 格式的圖片一般不會壓縮,約等於原始圖片,可以是 1-32 位 的多種位深度的圖片。
壓縮方式
圖片的壓縮方式一般是三類:
● 無壓縮
幾乎不對圖片進行壓縮處理,儘量以原圖的方式呈現圖片,如 bmp 格式的圖片就屬於這一類。
● 無失真壓縮
很多圖片都採用無失真壓縮的方式,如 png、gif 等。
無失真壓縮採用對圖片資料進行編碼壓縮,以不降低圖片質量的情況下減少圖片的大小。
無失真壓縮只是對畫素資料壓縮,不會減少畫素,幾乎沒有損耗,所以可以恢復到原始圖片。
● 有失真壓縮
有失真壓縮最常見的就是 jpg 格式的圖片,它一般是使用去除人眼無法識別的圖片畫素的方法,降低了圖片的質量用以大幅度的減少圖片的大小。
這種情況下,有失真壓縮減少了圖片的畫素點,導致圖片資料部分丟失了,屬於不可逆的,所以無法恢復到原始圖片。
webp 格式的圖片既有無失真壓縮的,也有有失真壓縮。
不同格式圖片介紹
jpg
jpg 格式是最常見的影像格式,我們使用手機、相機等裝置拍的照片幾乎都是這種格式的,網際網路上也有大量 jpg 格式的圖片。根據一些資料顯示,jpg 格式的圖片目前大概能佔到七八成的比例。
它的特點是有失真壓縮,使用這種不可逆的壓縮方式,在不影響人眼可分辨的情形下,儘可能大的壓縮圖片檔案大小。
優點:支援 24 位,色彩豐富,檔案較小;
缺點:圖片有失真壓縮導致質量下降,不支援透明度。
適用於色彩豐富的照片、漸變影像,以及通用場景都較合適。
png
png 格式也是非常常見的影像格式,在網路傳輸和資源展示中都用處很大,它相比於 jpg,能夠支援透明度,並且圖片更清晰、逼真,這也是它被廣泛使用的原因之一。
優點:支援較高比例的無失真壓縮,擁有 32 位色彩深度,顏色豐富,支援透明度,並且檔案也相對較小,支援儲存附加資訊如 exif 等圖片資訊。
缺點:相比 jpg,壓縮較少,檔案大小會大一些。
適用於各種通用場景,對圖片質量要求較高,或者需要透明度的情況。
8 位 PNG 影像:
一個 8 位 PNG 圖片,支援透明背景且畫素顏色不能超過 256 種。除了壓縮演算法不同之外,此 8 位 PNG 格式與 GIF 格式極其相似;
用途:
8 位 PNG 圖片的用途與 GIF 格式基本相同,
● Logo
● 小圖示(Icon)
● 用於佈局的圖片(例如某個佈局角落,邊框等等)
● 僅包含不超過 256 種色彩的簡單,小型圖片場合
24 位 PNG 影像:
24 位 PNG,支援 160 萬種不同的畫素顏色且支援 Alpha 透明效果,這就意味著,無論透明度設定為多少,PNG 圖片均能夠與背景很好的融合在一起。
gif
gif 格式最常應用的場景就是網際網路上的表情包和各種圖片動畫效果,它只支援有 8 位 256 種顏色,色彩很簡單,加上壓縮率也較高,檔案大小都很小。
優點:幀動畫,帶透明效果,檔案小;
缺點:色彩簡單,影像質量較差。
適用於表情動圖、簡單的 logo、icon 等圖片,不適合顏色複雜細豐富的圖片。
svg
svg 格式是瀏覽器支援的唯一一種向量圖格式,它是一種可伸縮的向量圖形,基於 xml 語言進行描述的。 它縮放不失真的特點對我們在多屏展示圖示很有幫助,目前網路上的一些字型圖示、icon 等很多是 svg 圖片。
優點:向量圖,不失真,檔案更小,支援透明度,動效,svg 可程式設計,相容性也不錯;
缺點:過多的 svg 會導致渲染負擔。
適用於需要高效保真的影像,各種圖示、logo、icon、圖形表等等。
webp
webp 是一種相對較新的影像格式,它是谷歌推出的,最大的特點是:視覺效果好、色彩豐富的同時,同樣影像的檔案大小能比 jpg、png 減小 30% 左右。
優點:支援透明度,動畫效果,檔案更小,影像質量更好,既支援有損也支援無失真壓縮;
缺點:影像解碼稍複雜,可忽略 (ie 瀏覽器不支援)。
比較好的一點是,webp 目前已經獲得大部分主流瀏覽器的支援,所以使用 webp 格式的圖片也是一種較好選擇,能有效減少檔案大小,縮短下載時間。甚至,微信小程式都已經支援了。
bmp
bmp 格式是一種儲存影像原始資料的圖片格式,屬於 window 系統中的標準影像格式,它是無失真壓縮,幾乎不會作任何有損影像資料的操作,因此它是影像原始資料的一種來源。它支援多種位數 (1\4\8\16\24\32) 的色彩深度。
優點:無失真壓縮,影像資料儲存完整,畫質也很高;
缺點:影像檔案較大。
window 系統使用一些,但網際網路上一般使用很少。
ico
ico 是一種圖示檔案格式,一個檔案可以儲存多個尺寸的影像資料,較常見於 win 系統下的系統圖示。
它支援透明度,一般尺寸都較小,網際網路開發種常用的網站站點圖示就是使用這種格式: favicon.ico,顯示在瀏覽器頁面的標籤 tab 上。
avif
avif 是一種更新也更高效的影像格式,它基於高效影片編碼方案而生成的最新的一種影像檔案格式。
avif 可以使用無損或有失真壓縮來處理影像,可壓縮比例更高,一般檔案大小能比同樣的 jpg 影像減小 1 倍左右。
avif 支援透明度和動畫效果,影像質量和檔案大小的表現都要優於其他格式的影像,但是它的瀏覽器支援度還不夠,部分瀏覽器不支援,如 Edge。
相關文章
- 圖片格式及空間的介紹
- 關於mysql基礎知識的介紹MySql
- 資料庫基礎知識介紹!資料庫
- Java基礎知識篇——Java基本介紹Java
- 圖片的基本知識點
- Python基礎知識之常用框架Flask介紹!Python框架Flask
- Html與css基礎知識介紹(必看篇)HTMLCSS
- Hbase一:Hbase介紹及特點
- 遊戲基礎知識——“學徒”角色的設計特點遊戲
- BSN-DDC 基礎網路關鍵知識點(一)DDC背景介紹
- Lustre架構介紹的閱讀筆記-基礎知識架構筆記
- 深度學習中的框架特點及介紹深度學習框架
- Python列表及元組的相同點與不同點介紹Python
- 遊戲基礎知識——遺蹟場景的設計特點遊戲
- 知識圖譜技術的新成果—KGB知識圖譜介紹
- SSH Config教程之基礎知識介紹-必備技巧
- java基礎知識點Java
- JavaWeb基礎知識點JavaWeb
- ComfyUI 基礎教程(二) —— Stable Diffusion 文生圖基礎工作流及模型、常用節點介紹UI模型
- OSPF介紹及基礎配置
- CSS基礎知識簡介CSS
- Python基礎入門知識點——if 語句簡介Python
- 圖片上傳知識點梳理
- ELF 格式簡述 - eBPF 基礎知識eBPF
- Python中的布林值用途及特點介紹!Python
- 主流程式語言的介紹及特點
- t-io網路程式設計基礎知識介紹程式設計
- Python基礎知識點梳理Python
- Java基礎知識點梳理Java
- JavaScript部分基礎知識點JavaScript
- Servlet基礎知識點整理Servlet
- Thread執行緒的基礎知識及常見疑惑點thread執行緒
- KGB知識圖譜的功能和特色介紹
- NumPy基礎知識圖譜
- 圖解 IP 基礎知識!圖解
- 圖形學基礎知識
- 遊戲基礎知識——“進入冒險世界”情節的共同特點遊戲
- C# 基礎知識系列- 13 常見類庫介紹(一)C#