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

how to add background to png image photoshop
how to add background to png image 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 時,請使用以下確切順序。

  1. 透過 File > Open 開啟透明 PNG。Photoshop 會偵測 alpha 色道,並將其完整保留在獨立圖層上。
  2. 在圖層面板中,按一下「建立新圖層」(方框加號圖示)。將其重新命名為「Background」,或保留預設的「Layer 1」。
  3. 在圖層面板中將新圖層拖曳至 PNG 圖層下方,使其位於去背圖之後,而非之前。
  4. 按下 Ctrl/Cmd+Backspace,以目前的背景顏色填滿新圖層;或開啟 Edit > Fill,選擇「Color…」,挑選確切的目的色彩(例如白色 #FFFFFF)。
  5. 若文件底部仍顯示棋盤格,請透過 Layer > New > Background from Layer,將已填色的圖層轉為真正的背景,使結構符合一般的不透明文件。
  6. 透過 Layer > Flatten Image 將影像扁平化,以便擁有一個準備匯出的不透明圖層。
  7. 透過 File > Export > Export As… 匯出,選擇 PNG 並確認。下載得到的 PNG 在所有位置都會是 alpha = 255,且所選顏色會顯示於每個原本透明或半透明的區域。

若你偏好非破壞性的工作流程,可使用 Layer > New Fill Layer > Solid Color 來取代一般的像素圖層。這個填色圖層位於 PNG 之下,可隨時編輯以變更背景顏色,並僅在匯出時才扁平化。無論你以白色、品牌紅或特定印刷色進行填色,背後執行的都是同一套 alpha 合成運算。原本位於棋盤格上的標誌若有柔和陰影,當你將其與紅色填色合成時,會變成淡紅色的陰影——這是正確的行為,而非 bug。

如何在瀏覽器中為 PNG 加上背景

如果你不需要 Photoshop 的編輯工具,只想要一張帶有正確純色背景的不透明 PNG,瀏覽器工具無需啟動編輯器,就能完成相同的 alpha 合成。為 PNG 加上背景工具完全在當前分頁中執行:沒有任何資料被上傳、不會離開你的裝置,且原始檔案永遠不會被修改。

  1. 從本機裝置中選擇一張不超過 25 MiB 的透明或半透明 PNG。
  2. 使用瀏覽器的色彩控制項,選擇與最終用途相符的純色背景。
  3. 按一下「Add background」,將來源影像的每個像素與所選顏色合成,並將輸出的 alpha 設為 255。
  4. 檢查不透明預覽,確認頁面上顯示的尺寸與原始寬高完全一致。
  5. 下載 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) 常見於市集、文件和商品頁面,但社群圖片、深色介面、印刷版面與品牌系統往往需要特定的十六進位值。若你不知道確切的十六進位值,影像色彩選取工具 可透過點擊像素,從參考影像中擷取已知的背景顏色。下載後,請在正常觀看尺寸下,針對目的色檢查柔和邊緣——若邊緣在目的端看起來正確,則合成就是正確的。

此工具會產生技術上定義明確的合成結果,但不會認證品牌合規、印刷色彩匹配、市集接受度或無障礙對比。這些檢查必須在檔案匯出後,對照實際目的端進行。對於機密草稿與私人產品影像,本機瀏覽器的做法非常合適,因為檔案從不離開你的裝置;不過你仍應遵循組織的本機裝置政策。

延伸閱讀:為 JPG、PNG 或 WebP 影像加上實心邊框

延伸閱讀:如何在瀏覽器中加入 Photoshop 風格浮水印