PNG 轉 JPG:無損變有損,透明度處理同質量取捨
PNG 同 JPG 係兩種根本唔同嘅影像格式。PNG 用無損壓縮,每個像素嘅顏色同透明度都完整保留,重複儲存唔會質素下降;JPG 用有損壓縮,依靠人眼對細節嘅敏感度去棄置某啲資訊,壓縮比愈高,檔案愈細,但細節流失愈明顯。呢張頁面所做嘅,就係將 PNG 嘅精確像素數據,轉換成 JPG 嘅近似表示——而且成個過程喺你嘅瀏覽器入面完成,唔經任何伺服器。
最關鍵嘅結果係:JPG 冇 Alpha 通道,即係 PNG 入面嘅透明度會自動被一個實色背景(預設黑色)取代。呢點係轉換前必須明白嘅代價。
PNG 同 JPG 嘅核心分別
- 壓縮方式:PNG 用 DEFLATE 無損壓縮,適合線條圖、文字、螢幕截圖;JPG 用離散餘弦變換(DCT)有損壓縮,適合連續色調嘅相片。
- 透明度支援:PNG 支援 8-bit Alpha 透明度(256 級),JPG 完全冇透明度概念。轉換時透明度會強制展平。
- 重複儲存效果:PNG 可以無限次開、改、儲存,質素不變;JPG 每次重新壓縮都會累積失真(稱為 generation loss)。
- 檔案大小:對相片類圖片,PNG 一般比 JPG 大幾倍;對圖示、Logo 或簡單圖案,PNG 反而更細。
- 廣泛兼容性:所有瀏覽器、作業系統、打印系統都支援 JPG;但 JPG 唔支援動畫同透明背景。
呢啲分別直接解釋咗點解有人需要將 PNG 轉做 JPG:當目標系統唔食 PNG(例如舊電郵用戶端、某啲社交平台上載工具),或者想將相片檔案大幅縮細。
透明度展平嘅技術細節
當一張 PNG 帶有半透明或全透明區域,JPG 編碼器唔知點處理「冇嘢」嘅地方,因為 JPG 只係記錄每個像素嘅 RGB 顏色值。為咗令轉換成功,系統會自動將透明區域填上一個固定背景色。頁面所用嘅預設背景係黑色。
呢個做法帶嚟兩個實際問題:
- 透明區域變成黑色:如果你原本有半透明陰影效果,轉換後陰影會同黑色背景混合,失去原有嘅疊加效果。
- 邊緣可能出現黑邊:若果主體有抗鋸齒漸變到透明,展平後主體邊緣可能會有一圈唔自然嘅黑色暈影。
如果唔想要黑色背景,唯一嘅變通方法係先用圖像編輯軟件將 PNG 合成到你想要嘅背景上,再匯出 JPG。
質量設定點樣影響結果
頁面允許使用者選擇 40% 到 100% 嘅質量值,預設值為 92%。呢個值直接控制 JPG 壓縮器嘅量化表——數值愈高,保留嘅高頻細節愈多,檔案愈大;數值愈低,壓縮愈狠,檔案愈細,但區塊效應(blocking artifacts)同色塊模糊愈明顯。
- 100%:壓縮最少,但唔係無損——JPG 格式本身嘅第一步色彩空間轉換同色度抽樣已經有損。
- 80-95%:質素同檔案大小嘅平衡點,對多數相片嚟講視覺上接近無損。
- 40-60%:檔案細好多,但細節明顯流失,適合縮圖或頻寬有限嘅情況。
頁面會顯示每個轉換結果嘅原始大小同轉換後大小,並標記 Saved(檔案細咗)或者 Larger(檔案反而大咗)。Larger 嘅情況好常見,尤其係輸入係簡單圖案或低解析度 PNG:因為 JPG 嘅壓縮演算法對呢類圖片效率低,加上 JPEG 嘅 header 同霍夫曼表開銷,令總體積增加。
瀏覽器端處理:私隱同限制
成個轉換過程喺瀏覽器內完成。瀏覽器會解碼每個 PNG 並將其重新編碼為 JPEG。檔案從未上載到任何伺服器,適合處理敏感影像。
支援嘅輸入格式只有 PNG。瀏覽器會嘗試解碼,如果解碼失敗(例如檔案損壞、空白、或者偽裝成圖片嘅非圖片檔案),會顯示:「此檔案無法作為圖片開啟。它可能已損毀、空白或並非圖片。」
特別邊緣情況:如果瀏覽器唔支援直接儲存 JPG(極罕見,主要發生喺好舊嘅瀏覽器版本),系統會改用 PNG 格式輸出,並顯示:「你的瀏覽器不支援以這個格式儲存——已改用 PNG 代替。」
批次轉換同下載流程
使用者可以一次過選擇多張圖片,上限為 20 張。超過上限時會顯示:「每次最多可選擇 ‹max› 張圖片。」
選完後所有圖片會順序轉換,轉換結果會逐張顯示:
- 輸出檔案名稱
- 尺寸(像素)
- 原始大小同轉換後大小
- Saved 或 Larger 標籤
下方有兩個下載選項:
- 個別 Download 按鈕:逐張下載 JPG。
- Download all (.zip) 按鈕:當有兩張或以上轉換成功時,打包成 ZIP 壓縮檔一次過下載。
如果部份檔案無法處理(例如格式不支援或解碼失敗),頁面會總結:「有 ‹count› 個檔案無法處理。」同時成功嘅檔案仍可正常下載。
常見邊緣情況同錯誤訊息
頁面內置咗幾種明確嘅錯誤處理,以下是完整清單:
| 情況 | 顯示訊息 |
|---|---|
| 檔案無法作為圖片開啟 | 「此檔案無法作為圖片開啟。它可能已損毀、空白或並非圖片。」 |
| 轉換過程中出錯 | 「轉換失敗。請嘗試其他圖片或格式。」 |
| 選擇超過上限數量 | 「每次最多可選擇 ‹max› 張圖片。」 |
| 冇選擇任何圖片就嘗試轉換 | 「請選擇至少一張圖片。」 |
| 拖放唔支援嘅檔案類型 | 「此檔案類型不受支援。」 |
| 瀏覽器唔支援輸出 JPG | 「你的瀏覽器不支援以這個格式儲存——已改用 PNG 代替。」 |
呢啲錯誤訊息用咗使用者理解得到嘅中文,避免技術術語。
常見問題
問:點解 JPG 唔支援透明背景?
因為 JPG 格式嘅設計本身只記錄 RGB 顏色數據,冇預留任何通道儲存透明度資訊。PNG 同 GIF 先有 Alpha 通道或者透明色標記。
問:轉換後背景變咗黑色,我可唔可以轉做其他顏色?
呢個頁面預設用黑色填補透明區域,冇畀用家揀背景色。如果你需要特定背景色,建議喺轉換前用編輯軟件喺 PNG 下層放你想要嘅色塊,再輸出。
問:點解轉完 JPG 之後檔案仲大過原本 PNG?
常見原因有兩個:第一,原本 PNG 係簡單圖案(例如文字、Logo),PNG 嘅無損壓縮對呢類圖像好有效;JPG 嘅有損壓縮反而會用更多位元儲存細節。第二,如果原圖尺寸好細,JPG 嘅標頭開銷可能佔咗可觀比例。
問:可唔可以一次過轉好多張相?
可以。頁面支援批量選擇,上限為 20 張。轉換完成後可以用「Download all (.zip)」一次過下載全部 JPG。
問:瀏覽器端轉換有咩好處?
最大好處係私隱——檔案唔會離開你嘅裝置。其次係速度,因為唔使上載下載,尤其係大量細檔案時感覺更順。缺點係依賴瀏覽器嘅解碼能力,好舊嘅瀏覽器可能唔支援 HEIC 或 AVIF。
問:質量設定 100% 係咪完全無損?
唔係。JPG 就算用 100% 質量,仍然會經過色彩空間轉換(RGB 轉 YCbCr)同色度抽樣(通常 4:2:0 或 4:2:2),呢兩個步驟本身就係有損。100% 只係表示量化表最精細,但唔等同 PNG 嘅無損儲存。