歡迎來到數據表示:圖像表示!

各位未來的電腦科學家,大家好!本章節將帶你了解電腦是如何在只懂得 0 和 1(二進制)的情況下,成功呈現出精美且複雜的圖像。

不必擔心數學或物理不是你的強項,我們會將圖像表示法拆解成簡單的構成要素。在本節結束時,你將掌握數碼儲存任何圖片所需的三大關鍵要素:像素 (pixels)解像度 (resolution)色彩深度 (colour depth) 以及 元數據 (metadata)

重點摘要:為什麼這很重要?

理解圖像表示非常關鍵,因為它直接影響檔案大小圖像品質。這些知識能幫助我們計算儲存需求,這是電腦科學中的一項核心技能。

1. 位元圖與像素:數碼圖像的基礎

當電腦儲存一張照片時,它並不是儲存照片中的場景,而是儲存一張巨大的「地圖」,用來描述構成圖片的每一個微小點。這類圖像被稱為位元圖 (Bitmap)(即位元組成的地圖)。

類比:方格紙繪圖

想像一下,試著只用一張方格紙來重現一幅名畫。你將每個小方格填上一種顏色,直到整幅畫顯現出來。數碼位元圖的運作方式正是如此。

什麼是像素 (Pixel)?

數碼圖像中最小的元素稱為像素 (Pixel)(是 Picture Element 的縮寫)。

• 像素是一個單一、微小且均勻的顏色方塊(或點)。
• 每個像素都會被分配一個二進制代碼(一串 0 和 1),告訴電腦它應該呈現什麼顏色。
• 電腦會讀取這張「地圖」(位元圖),並根據儲存的二進制代碼來設定螢幕上每個像素的顯示狀態。

快速檢查: 如果你在手機或電腦螢幕上將照片放大到極致,最終會看到一個個獨立的方格,那就是像素!

快速回顧:位元圖 vs. 像素

位元圖 (Bitmap): 所有像素組成的整個網格或地圖。
像素 (Pixel): 網格內的一個單一彩色點。

2. 解像度:網格的大小

決定圖像品質和檔案大小的第一個因素是解像度 (Resolution)

解像度是指建立圖像所使用的像素總數。通常以「闊度乘高度」來表示。

計算解像度

如果一張圖片的闊度為 1200 像素,高度為 800 像素,其解像度就是 \(1200 \times 800\)。

要找出圖像中的總像素數,只需將闊度乘以高度:
\(\text{總像素} = \text{闊度} \times \text{高度}\)
例子: \(1200 \times 800 = 960,000\) 像素。

解像度的影響

高解像度: 意味著圖像有更多的像素,這會帶來更精細的細節和清晰度(圖像更銳利)。
低解像度: 意味著像素較少。如果你試圖在大螢幕上顯示低解像度圖像,像素會變得明顯(使圖像看起來有「格子感」或像素化/起格)。
檔案大小: 更高的解像度需要儲存更多的像素數據,導致檔案大小更大

別擔心! 當人們說螢幕是「Full HD 1080p」時,指的是 \(1920 \times 1080\) 像素(闊乘高)的解像度。那可是超過 200 萬個像素呢!

3. 色彩深度:定義每個點的顏色

我們知道像素是一個單一的彩色點,但電腦如何知道它是什麼顏色?這由色彩深度 (Colour Depth) 來決定。

什麼是色彩深度(每像素位元數 - BPP)?

色彩深度是用來儲存單個像素顏色資訊的位元 (bits) 數量。有時也稱為每像素位元數 (Bits Per Pixel, BPP)

由於一個位元只能是 0 或 1,使用更多的位元可以創造出更多的組合,從而呈現更多的顏色。

計算可顯示的顏色數量

可呈現的顏色數量可以使用以下公式計算:
\(\text{顏色數量} = 2^{\text{色彩深度(以位元為單位)}}\)

色彩深度的分步範例

讓我們看看增加 BPP 如何大幅增加顏色選項:

範例 1:1-bit 色彩深度
BPP: 1 bit
計算: \(2^1 = 2\) 種顏色
結果: 這張圖像只能顯示 2 種顏色(通常是黑與白)。
範例 2:8-bit 色彩深度
BPP: 8 bits
計算: \(2^8 = 256\) 種顏色
結果: 這在舊型電腦遊戲中很常見。它允許有限的顏色範圍,但不足以達到照片般的寫實品質。
範例 3:24-bit 色彩深度(全彩/真彩色)
BPP: 24 bits
計算: \(2^{24} = 16,777,216\) 種顏色(約 1670 萬種)
結果: 這被稱為全彩 (True Colour)。由於人眼只能分辨約 1000 萬種顏色,因此 24-bit 的深度被認為已達到照片級的真實感,是現代數碼攝影和顯示器的標準。

記憶口訣: 更多的每像素位元數 (BPP) = 更深的顏色 = 更好的品質 = 更大的檔案大小。

你知道嗎? 24-bit 色彩深度是透過將 8 個位元分配給光的三原色:紅、綠、藍 (RGB) 來實現的。\(8 \text{ bits} + 8 \text{ bits} + 8 \text{ bits} = 24 \text{ bits}\)。

4. 元數據:與圖像一同儲存的資訊

除了原始像素數據外,圖像檔案還必須儲存元數據 (Metadata)

元數據被定義為關於數據的數據 (data about data)。如果沒有元數據,電腦只會看到一長串二進制數字,無法得知網格應該繪製多闊,或者每個像素由多少個位元組成。

常見圖像元數據例子

闊度與高度: 以像素為單位的圖像尺寸(解像度)。
色彩深度: 所使用的每像素位元數 (BPP)。
檔案格式: 檔案類型(例如 BMP、PNG、JPEG)。
建立日期與時間: 圖像建立或拍攝的時間。

計算備註: 當使用公式 \(\text{解像度} \times \text{色彩深度}\) 計算儲存需求時,計算出的是不包括元數據的原始圖像大小。

5. 計算圖像檔案大小

現在我們將解像度和色彩深度結合起來,計算未經壓縮的檔案大小(不包括元數據,以位元、位元組、KB 或 MB 為單位)。

核心公式

\(\text{檔案大小(以位元為單位)} = \text{總像素數} \times \text{色彩深度 (BPP)}\)

分步計算過程

請依照這四個關鍵步驟準確計算檔案大小:

步驟 1:計算總像素數(解像度)

將圖像闊度乘以圖像高度。
例子: 一張圖片闊度為 400 像素,高度為 300 像素。
\(400 \times 300 = 120,000\) 像素

步驟 2:計算總位元數(以位元為單位的檔案大小)

將總像素數乘以色彩深度 (BPP)。
例子: 上述圖片的色彩深度為 8 bits (8 BPP)。
\(120,000 \times 8 = 960,000\) 位元

步驟 3:將位元轉換為位元組 (Bytes)

由於 8 bits 等於 1 byte,將總位元數除以 8。
\(960,000 \div 8 = 120,000\) 位元組

步驟 4:轉換為千位元組 (KB) 或 百萬位元組 (MB)

對於大檔案,我們會轉換成更大的單位。請記住,對於儲存空間計算:
\(1 \text{ Kilobyte (KB)} = 1024 \text{ Bytes}\)
\(1 \text{ Megabyte (MB)} = 1024 \text{ KB}\)

將步驟 3 的結果(120,000 位元組)轉換為千位元組 (KB):
\(120,000 \div 1024 \approx 117.19\) KB

🚨 常見錯誤警告 🚨

在電腦科學中,將位元組轉換為 KB,或 KB 轉換為 MB 等單位時,請務必記得除以 1024(而不是 1000),因為這是二進制的單位轉換!

計算總結

計算檔案大小能顯示品質與儲存空間之間的取捨:

• 如果你將解像度翻倍(例如從 \(400 \times 300\) 變為 \(800 \times 600\)),像素總數會增加為原來的 4 倍,檔案大小也隨之增加為 4 倍
• 如果你將色彩深度翻倍(例如從 8 BPP 變為 16 BPP),檔案大小會翻倍

這解釋了為什麼高解像度、高色彩的圖片在手機上會佔用那麼多空間!

本章重點總結
• 數碼圖像以位元圖 (Bitmaps) 儲存,是由單個像素 (Pixels) 組成的網格。
解像度 (Resolution)(\(\text{闊度} \times \text{高度}\))決定了像素總數。
色彩深度 (Colour Depth) (BPP) 決定了每個像素所使用的位元數,影響顏色忠實度(\(2^{\text{BPP}}\) 種顏色)。
元數據 (Metadata) 是關於數據的數據(例如尺寸、色彩深度、檔案格式),用以正確重現圖像。
檔案大小(位元) = \(\text{解像度} \times \text{色彩深度}\)(不包括元數據)。
• 轉換單位:\(8 \text{ bits} = 1 \text{ Byte}\);\(1024 \text{ Bytes} = 1 \text{ KB}\)。

你已經掌握了電腦如何看待和儲存圖片了!做得好!現在你已經準備好挑戰數據計算的練習題了。