影像平均色彩是每個可見像素的紅、綠、藍三個色通道,以單一 Alpha 加權算術平均計算後,以一組六位數十六進位值顯示。是否使用它取決於你的專案需要一個代表性色樣,還是多個截然不同的色彩 —— 平均計算會把整張圖片壓縮成一個數字,所以適合粗略的背景配色、低解析度佔位符,以及縮圖摘要,但會在過程中失去所有強調色、漸層和主體邊界。它並非主色分群模型:兩個權重相同的紅色和藍色像素會產生紫色結果,即使來源中並不存在紫色像素。當目標是為容器取得一個代表性色調、快速比較兩項素材,或為一張影像的整體色彩特徵留下可重現的記錄時,適合使用平均計算。當你需要真正的色版、感知主體的擷取、品牌合規證明、無障礙對比驗證,或油漆/印刷配色時,則不適合使用平均計算,因為這些任務需要專門為它們設計的工具。Image Average Color Finder 會在瀏覽器中本地計算這個單一數值,套用 Alpha 加權規則,並將非常大的影像縮取樣到固定的分析預算,以便在合理輸入下能重現結果。

影像色彩平均實際會產生什麼
結果是單一 Alpha 加權算術平均值。對於每個 Alpha 非零的取樣像素,其紅、綠、藍三個色通道會各自乘上該像素的 Alpha 值。三個加權總和會除以所有取樣 Alpha 的總和,並在輸出時四捨五入一次為 0 到 255 之間的整數。完全透明的像素會被排除,因為其儲存的 RGB 通道可能含有任意的編碼器資料;部分透明的像素則會依照其不透明度比例貢獻。回報的十六進位值永遠由一個井字號後接六個小寫十六進位數字組成,旁邊會顯示對應的小數 RGB 值。
這是刻意明確記載的算術平均,並非感知式、預設 Gamma 修正或直方圖式計算。以一個實作為例,取兩個權重相同、完全不透明的像素:一個紅色 rgb(255, 0, 0) 和一個藍色 rgb(0, 0, 255)。Alpha 總和為 255 + 255 = 510。加權紅色等於 (255 × 255 + 0 × 255) 除以 510,也就是 65,025 / 510 = 127.5,四捨五入為 128。加權綠色維持 0,因為兩個像素都貢獻零。加權藍色走和紅色相同的計算路徑,同樣四捨五入為 128。輸出為 rgb(128, 0, 128),也就是 #800080,一個來源中不存在的紫色。了解這個行為是判斷平均計算是否適合你的任務的一部分。
平均計算何時是正確選擇
當一個數字就足夠時,平均計算就是正確工具。單一代表性色彩真正有用的具體情境包括:
- 在全尺寸素材載入前,為縮圖設定粗略的背景或容器色彩。
- 為 LQIP 風格技術產生低解析度佔位色調。
- 以色樣比較兩張影像 —— 並排比對兩者的平均值,一眼就能看出色調的大幅變化。
- 填入設計素材清單、情緒板或目錄列,目標是每項素材一個色樣。
- 為日後參考,快速、可重現地記錄一張影像整體的色彩特徵摘要。
| 任務 | 平均計算 | 多色色版 | 單像素吸管 |
|---|---|---|---|
| 為佔位符或容器提供單一代表性色樣 | Yes | Overkill | Misses blended regions |
| 五個最常出現或最獨特的色彩 | No | Yes | No |
| 已知像素的確切色彩 | No | No | Yes |
| 文字與背景之間的 WCAG 對比 | No | No | No |
| 整體色調的可重現摘要 | Yes | Partial | No |
如果你的任務落在表格右側的欄位,平均計算無法幫上忙 —— 在開啟工具前請先閱讀下一節。
當你需要不同工具時
對一張影像取平均色彩,你就會得到一個數字。當你需要更豐富的資訊時,決策就翻轉了。
需要多個截然不同的色彩,包括能在背景中突顯出來的強調色時,需要的是分群或直方圖處理,而不是單一平均值。為此,Color Palette Generator 會從一個基礎色或影像中擷取一組協調的色樣,這更接近多數設計師所說的「這張圖裡的色彩」。如果你需要的是某個已知像素的精確色通道讀數,正確的工具是吸管,而不是平均 —— 平均會把那個像素和鄰近像素混在一起,回報一個你沒要求的混合值。
無障礙是另一個獨立的問題。平均計算無法告訴你內文文字在影像上是否清晰可讀,因為對比是兩個特定色彩在像素層級上的關係。請改用 Color Contrast Checker,以 WCAG AA 或 AAA 門檻進行檢查,並挑選實際的文字色彩,而不是使用平均色樣。不論色樣看起來多麼合理,平均色彩工具的結果都不是對比值。
還有兩個使用情境完全落在平均計算範圍之外。品牌合規驗證 —— 小型標誌色彩必須符合文件記載的色樣 —— 需要的是取樣像素加上文件記載的容許誤差,而不是整張影像的一個數字。感知相似度 —— 想知道兩個色樣在人眼是否會視為「相同」 —— 需要定義明確的色差指標,例如 CIEDE2000 —— 請使用 Color Difference Calculator 來處理。油漆配色、印刷配色,以及任何跨媒介的色彩工作流程也都落在瀏覽器 RGB 平均的範圍之外,因為色彩管理、色域和基底都會改變結果。
最後,感知主體擷取是平均計算無法做到的事。一張黃色檸檬擺在米色背景上的照片,平均結果會偏向米色而不是黃色,因為面積較大的中性區域主導了算術計算。如果你需要的是主體本身的色彩,請先分割主體再只平均該區域,或使用專為主色偵測設計的工具。
如何用三個步驟取得平均色彩
- 選擇一個大小不超過 20 MB 的支援影像。瀏覽器接受 PNG、JPEG、WebP、GIF、BMP 和 AVIF;不支援的格式、空檔案或超過大小上限的檔案會產生明確的錯誤,而不是陳舊的結果。
- 等待本地解碼完成,並檢視十六進位值、RGB、覆蓋率與取樣尺寸。介面會同時顯示原始尺寸和實際用於分析畫布的尺寸,因此你可以看出影像是否被縮取樣。覆蓋率是所有取樣 Alpha 的總和,除以該取樣範圍內最大可能的 Alpha 總和。
- 點擊十六進位值以複製它,然後在預期的設計情境中驗證色樣。剪貼簿會收到一個井字號後接六個小寫十六進位數字。如果瀏覽器拒絕剪貼簿存取,該值仍會保持可見且可選取,工具不會虛報成功。
完整流程都在目前的分頁中執行 —— 解碼、畫布取樣、Alpha 加權平均,以及剪貼簿輸出全部在本地完成 —— 因此來源檔案和取樣像素都不會上傳到伺服器或影像分析服務。Image Average Color Finder 會預先揭露所有互動限制,讓結果可被稽核而非神秘莫測。
閱讀覆蓋率與尺寸註記
介面會在十六進位值旁邊回報兩個數字:覆蓋率和取樣尺寸。覆蓋率是所有取樣 Alpha 的總和與該取樣範圍內最大可能 Alpha 總和的比值。覆蓋率 1.0 代表每個取樣像素都是完全不透明;較低的數字代表取樣中有相當比例是部分或完全透明,這會把平均值往不透明像素的方向偏移。覆蓋率遠低於 1.0 是個訊號,代表來源含有大片透明區域,而結果描述的是圖片可見的部分,而不是它的整個畫布。
取樣尺寸來自固定的分析預算。解碼像素數在 1,048,576 以下的影像會以完整解析度讀取;更大的影像會按比例縮放,使分析畫布維持在該像素預算之內或以下。瀏覽器在該次縮取樣過程中的畫布內插,可能會與完整解析度的離線計算產生細微差異,這正是工具會同時顯示原始尺寸和取樣尺寸的原因,而不是隱藏這個近似值。
另外還有兩道安全機制。解碼後,影像任一邊的長度不得超過 20,000 像素,來源總像素數不得超過 4,000 萬像素。所選檔案本身必須不是空檔、必須使用支援的 MIME 類型,且大小不得超過 20 MB。這些限制降低了小型壓縮檔在解碼後膨脹為過大畫布記憶體的風險,而任何超出限制的影像都會產生明確的錯誤,而不會留下陳舊結果。
重現與驗證結果
不同程式會回傳不同的平均值,因為它們做了不同的選擇。有些使用完整解析度像素;有些套用 Gamma 修正或感知式數學;有些平均的是不同的動畫幀。Image Average Color Finder 刻意明確記載其規則 —— Alpha 加權算術平均、輸出時四捨五入一次、於縮取樣後的畫布上計算 —— 以便結果能夠重現並加以說明。
為了可重現的設計工作,請記錄四件事:輸入檔案、瀏覽器與版本、顯示的原始尺寸與取樣尺寸,以及回傳的十六進位值。有了這四項資訊,平均結果即使在數月後仍能重新生成,並與原始記錄進行比對。底層的畫布像素介面記載於 MDN CanvasRenderingContext2D.getImageData reference 與 WHATWG HTML canvas pixel-manipulation 規範,它們說明了工具所讀取的標準 8 位元 RGBA 緩衝區。
不要把單一平均值當作品牌合規、無障礙對比、印刷配色、油漆配色或感知相似度的證明。這些檢查需要各自的工具與各自的成功定義;平均計算只是起點,不是結論。請把這個色樣視為誠實描述整張圖片的一個數字,並在任務確實只需要一個數字時使用它。