若要在 Photoshop 中為 PNG 加上背景,請在透明去背圖下方放置一個純色填色圖層,然後將影像扁平化,使每個透明像素都採用該填色,而每個半透明像素則依其 alpha 值與之混合。任何以瀏覽器為基礎、對單一純色處理 alpha 色道並匯出與原始寬高相同之新不透明 PNG 的替代方案,都適用相同的合成邏輯。其結果並非單純的「刪除透明度」遮罩,而是一次真正的 source-over 合成——半透明的邊緣會與新背景平滑融合,而非留下生硬的光暈。一旦理解這個規則,你就能判斷對於眼前這張 PNG——無論是標誌、產品去背圖、簽名、圖示,或邊緣帶有零星透明度的螢幕擷圖——Photoshop 內建路徑與本機瀏覽器工具,哪一個是更快的選擇。

「為 PNG 加上背景」實際上代表什麼
帶有 alpha 色道的 PNG,會為每個像素儲存一組顏色與不透明度。像素可以是完全可見、完全不可見,或介於兩者之間。「為 PNG 加上背景」這句話真正的意思是「將每個像素合成在單一純色之上,並將結果寫成不透明 PNG」。這個區別很重要,因為 PNG 無法像 JPEG 那樣擁有「背景顏色」——透明度代表顏色的不存在,而不是檢視器會自動為你填入的預設值。
Photoshop、瀏覽器工具以及任何影像編輯器所依賴的規則,都是 source-over alpha 合成。對每個像素而言,結果 RGB 的計算方式如下:
- result_RGB = source_RGB × source_alpha + background_RGB × (1 − source_alpha)
- result_alpha = 255(完全不透明)
完全透明的像素 alpha = 0,因此公式化簡為 result = background。完全不透明的像素 alpha = 1,因此公式化簡為 result = source。介於兩者之間的情況則是加權混合。W3C 合成與混合規範精確定義了此公式,而 MDN 畫布合成參考資料則說明瀏覽器如何在 HTML 畫布中實作它。在任何工具中看到「以色彩取代透明度」時,你心中都應該持有這個模型,包括 Photoshop 與任何瀏覽器式的取代工具。
在 Photoshop 中為 PNG 加上背景的做法
Photoshop 給你完整的控制權,但步驟很明確。當你的目標是輸出一張帶有單一純色背景的不透明 PNG 時,請使用以下確切順序。
- 透過 File > Open 開啟透明 PNG。Photoshop 會偵測 alpha 色道,並將其完整保留在獨立圖層上。
- 在圖層面板中,按一下「建立新圖層」(方框加號圖示)。將其重新命名為「Background」,或保留預設的「Layer 1」。
- 在圖層面板中將新圖層拖曳至 PNG 圖層下方,使其位於去背圖之後,而非之前。
- 按下 Ctrl/Cmd+Backspace,以目前的背景顏色填滿新圖層;或開啟 Edit > Fill,選擇「Color…」,挑選確切的目的色彩(例如白色 #FFFFFF)。
- 若文件底部仍顯示棋盤格,請透過 Layer > New > Background from Layer,將已填色的圖層轉為真正的背景,使結構符合一般的不透明文件。
- 透過 Layer > Flatten Image 將影像扁平化,以便擁有一個準備匯出的不透明圖層。
- 透過 File > Export > Export As… 匯出,選擇 PNG 並確認。下載得到的 PNG 在所有位置都會是 alpha = 255,且所選顏色會顯示於每個原本透明或半透明的區域。
若你偏好非破壞性的工作流程,可使用 Layer > New Fill Layer > Solid Color 來取代一般的像素圖層。這個填色圖層位於 PNG 之下,可隨時編輯以變更背景顏色,並僅在匯出時才扁平化。無論你以白色、品牌紅或特定印刷色進行填色,背後執行的都是同一套 alpha 合成運算。原本位於棋盤格上的標誌若有柔和陰影,當你將其與紅色填色合成時,會變成淡紅色的陰影——這是正確的行為,而非 bug。
如何在瀏覽器中為 PNG 加上背景
如果你不需要 Photoshop 的編輯工具,只想要一張帶有正確純色背景的不透明 PNG,瀏覽器工具無需啟動編輯器,就能完成相同的 alpha 合成。為 PNG 加上背景工具完全在當前分頁中執行:沒有任何資料被上傳、不會離開你的裝置,且原始檔案永遠不會被修改。
- 從本機裝置中選擇一張不超過 25 MiB 的透明或半透明 PNG。
- 使用瀏覽器的色彩控制項,選擇與最終用途相符的純色背景。
- 按一下「Add background」,將來源影像的每個像素與所選顏色合成,並將輸出的 alpha 設為 255。
- 檢查不透明預覽,確認頁面上顯示的尺寸與原始寬高完全一致。
- 下載 PNG。檔名會自動加上「-background」,以便新檔案與透明來源檔案保持易於區分。
此工具僅接受 PNG,這是刻意設計的。JPEG 沒有 alpha 色道,因此沒有透明度可被取代。其他瀏覽器可解碼的格式在各應用程式間對 alpha 的支援不一致,會使輸出變得較難預期。將輸入限制收窄,代表瀏覽器只需解碼一張 PNG、將每個像素合成在單一顏色之上,再輸出一張 PNG——每次都能得到可預期的結果。
合成時每種像素類型的處理方式
下表摘要說明每一種來源像素的處理方式。表中各列並非在頁面上運算所得,而是 source-over 合成搭配不透明背景時的定義行為,完全符合 W3C 規範的描述。
| 來源像素狀態 | 合成後的輸出像素 |
|---|---|
| 完全透明 (alpha = 0) | 逐色道完全等於所選的背景顏色 |
| 部分透明 (0 < alpha < 255) | 來源 RGB 與背景 RGB 以 alpha 加權混合 |
| 半透明 (alpha ≈ 128) | 來源與背景顏色約略等比例的混合 |
| 完全不透明 (alpha = 255) | 原始來源 RGB,維持不變 |
| 任何 alpha 值 | 輸出 alpha 設為 255(完全不透明 PNG) |
這就是為什麼帶有柔和反鋸齒邊緣與淡陰影的標誌透明 PNG,在與目的色合成時看起來很乾淨;而與錯誤的顏色合成時,看起來就會失真。陰影像素的 alpha 很低,因此結果主要由所選的背景顏色決定,一旦背景顏色明顯不符,就會立即以可見的光暈呈現出來。
實作範例:半透明紅色像素疊在藍色填色之上
取一個來源像素:紅色,RGB (255, 0, 0),alpha 為 128——大約半透明。所選背景為藍色,RGB (0, 0, 255),alpha 為不透明的 255。套用 W3C 規範中的 source-over 公式,其中 source_alpha = 128/255,而 (1 − source_alpha) = 127/255:
- 結果 R = 255 × (128/255) + 0 × (127/255) = 128 + 0 = 128
- 結果 G = 0 × (128/255) + 0 × (127/255) = 0 + 0 = 0
- 結果 B = 0 × (128/255) + 255 × (127/255) = 0 + 127 = 127
最終像素四捨五入為 RGB (128, 0, 127)——一種深紫色。半透明的紅色疊在藍色上,會混合為紫色,而非純紅或純藍。瀏覽器工具會逐像素套用相同的公式,然後在整張輸出上寫入 alpha = 255。Photoshop 在扁平化步驟中,對同一組輸入也會產生完全相同的結果。
限制、檔案大小,以及工具不會做的事
為 PNG 加上背景工具設有特定的安全限制,以避免瀏覽器在解碼後的極大畫布上當機。檔案在解碼前可接受至 25 MiB。解碼後,工作畫布上限為 16 百萬像素,且任一邊長上限為 12,000 像素。副檔名為 .png 但位元組無效的檔案,會產生明確的解碼錯誤,而非靜默失敗。
此工具不會裁切、縮放、銳化、降噪或重新壓縮影像。輸出畫布使用與來源完全相同的寬高。如果你需要不同的尺寸,請先加上背景,再將 影像縮放工具 作為獨立步驟使用。若目的端需要 JPEG 而非 PNG,請下載不透明 PNG,再透過 PNG 轉 JPG 轉檔。將每個操作分開進行,可避免更換背景時悄悄改變幾何或失真品質,讓你隨時都能清楚是哪一步改變了檔案大小、是哪一步改變了格式、又是哪一步改變了尺寸。
為實際用途選擇正確的背景顏色
請挑選實際目的端所需的顏色,而非針對棋盤格預覽。白色 (#FFFFFF) 常見於市集、文件和商品頁面,但社群圖片、深色介面、印刷版面與品牌系統往往需要特定的十六進位值。若你不知道確切的十六進位值,影像色彩選取工具 可透過點擊像素,從參考影像中擷取已知的背景顏色。下載後,請在正常觀看尺寸下,針對目的色檢查柔和邊緣——若邊緣在目的端看起來正確,則合成就是正確的。
此工具會產生技術上定義明確的合成結果,但不會認證品牌合規、印刷色彩匹配、市集接受度或無障礙對比。這些檢查必須在檔案匯出後,對照實際目的端進行。對於機密草稿與私人產品影像,本機瀏覽器的做法非常合適,因為檔案從不離開你的裝置;不過你仍應遵循組織的本機裝置政策。