Base64 是一種二進位到文字的編碼方式,可以將任何檔案表示為一串可列印的 ASCII 字元。將圖片轉換成 Base64 意味著讀取 PNG、JPEG、GIF 或 WebP 檔案的位元組,並將其重新編寫為 ASCII 字串,使圖片能夠內嵌於程式碼中傳輸,而不必作為獨立檔案。編碼後的文字遵循 RFC 4648 中定義的標準,該標準規定了 Base64 字元集、填補規則與字元集合。當字串以 MIME 類型加上 data: 標記作為前綴時,結果稱為資料 URL(data URL),瀏覽器可以直接透過 <img> 標籤、CSS 中的 background-image 或 HTML 電子郵件內文來呈現該圖片。典型的資料 URL 看起來像 data:image/png;base64,iVBORw0KGgo...,其中以分號分隔的 MIME 類型會告訴瀏覽器該使用哪個解碼器,而逗號則標示實際編碼位元組的起始位置。

只要圖片需要存在於單一檔案中,開發人員就會使用 Base64。CSS 樣式表可以內嵌一個小圖示,讓網頁不再需要第二個 HTTP 請求;JSON 設定檔可以帶著縮圖;HTML 電子郵件可以內嵌其標誌,因為大多數用戶端會封鎖外部圖片;JavaScript 套件則可以在真正的素材載入前預先載入一個佔位圖。權衡取捨很直接:Base64 會讓原始二進位資料膨脹大約 33%,因為三個輸入位元組會變成四個輸出字元,所以這個技術更適合小圖示、UI 字符(glyph)與預覽圖,而非全解析度的照片。

how to convert image to base64
how to convert image to base64

圖片轉 Base64 轉換器的功能

Image to Base64 Converter 會讀取本機的圖片檔案,驗證實際的位元組(而不僅僅是副檔名),並產生純 Base64 字串或完整的資料 URL。由於轉換器會檢查原始檔案內容,資料 URL 中回報的 MIME 類型會與位元組實際內容相符,這能避免一個常見的錯誤:把 JPEG 的內容貼上卻帶著 image/png 前綴,導致圖片破圖。該工具還會回報解碼後的像素尺寸、以位元組為單位的檔案大小,以及圖片的預覽,讓你在複製任何內容到專案之前,可以確認是否載入了正確的檔案。所有處理都在你的瀏器分頁中進行,因此原始圖片從未離開你的電腦。

一步步將圖片轉換成 Base64

  1. 開啟 Image to Base64 Converter 並點擊檔案選擇器,從電腦中選擇一個 PNG、JPEG、GIF 或 WebP 檔案。
  2. 選擇輸出模式:若你只需要編碼後的字串,請選擇純 Base64;如果你想要可直接貼上的 data:image/...;base64,... 格式,請選擇圖片資料 URL。
  3. 觸發轉換並等待工具顯示偵測到的位元組格式、解碼後的像素尺寸、檔案大小以及螢幕上的預覽。
  4. 確認 MIME 類型與尺寸符合你預期載入的檔案。這是抓出錯誤檔案、被重新命名的副檔名或損壞上傳的時機。
  5. 使用複製按鈕複製完整的輸出內容。如果你選擇的是資料 URL,MIME 前綴會從已驗證的圖片位元組取得,因此你可以將該字串直接貼入 img 標籤或 CSS 規則中。

純 Base64 vs. 資料 URL:何時該使用哪一種

這兩種輸出模式適用於不同的工作,選錯通常代表之後必須手動加上或移除前綴。純 Base64 只是沒有任何外圍標記的編碼字元。你可以在 JavaScript 變數、API 酬載、資料庫 blob,或任何解碼端已經知道將接收何種檔案類型的情境中使用它。資料 URL 則會將該字串包入 data 結構描述、MIME 類型以及 ;base64 標記,產生一個瀏覽器無需任何額外資訊就能呈現的自描述值。

面向純 Base64圖片資料 URL
格式僅有編碼後的 ASCII 字元前綴加上編碼後的字元
典型用途API、資料庫、JSON 設定HTML img 標籤、CSS、電子郵件範本
是否可直接由瀏覽器呈現否,需要包裝是,自描述
輸出中是否包含 MIME 類型不包含包含,取自已驗證的位元組
最適用於程式化處理直接顯示使用

如果你要在 CSS 內嵌入小圖示,資料 URL 形式幾乎永遠是你想要的選擇。如果你打算將編碼後的字串傳送到會把它寫回磁碟的伺服器端點,純 Base64 能讓酬載保持乾淨。

為什麼 MIME 類型很重要

資料 URL 只有在前綴與後續的位元組相符時才有用。瀏覽器會根據該前綴來解碼酬載,所以給 PNG 資料貼上 image/jpeg 標籤,會產生破圖或靜默失敗。許多檔案系統會用 .jpg 這類副檔名隱藏真相(在內部其實是被重新命名的 PNG),作業系統層級的預覽也可能與實際位元組不一致。透過檢查檔案的魔術數字(magic number)而非檔名,轉換器能保證你複製的資料 URL 第一次就能正確顯示。同樣的道理也是為什麼 MDN 關於資料 URL 的文件中,會特別強調 MIME 類型必須與酬載對應。

解碼後的真實尺寸與大小

Base64 是一種可逆的編碼,所以解碼後的酬載與原始檔案逐位元組完全相同。因此解碼後的像素尺寸會與你的圖片檢視器所顯示的一致,解碼後的位元組數量則等於磁碟上的檔案大小,再加上編碼字元集的額外負擔。當轉換器顯示解碼後的度、高度與大小時,這些數字來自產生 Base64 字串的同一批位元組,這代表你可以把它們當作下游決策(例如 CSS 大小或 API 酬載限制)的可靠依據。如果專案預算限制內嵌圖片最多只能 20 KB,轉換後檢查解碼大小是唯一能確認符合該限制的方式。

Base64 圖片最適合用在哪些地方

當目標是減少來回請求,或是遞送一個自包含的檔案時,Base64 就能發揮所長。常見的效益包括:使用資料 URL 直接在 HTML 中嵌入 favicon;在電子郵件簽名中附加小標誌,讓它在封鎖遠端圖片的用戶端中仍能顯示;將載入骨架(loading skeleton)內嵌於單一檔案的 HTML 展示中;將縮圖存入 JSON 記錄裡,讓 API 回應同時帶著中繼資料與預圖。但這個技術不適合大型照片,因為 33% 的額外負擔與失去 HTTP 快取的缺點,很快就會蓋過便利性。針對這類情況,改用一般託管的檔案,並搭配 Image CompressorImage Resizer 會是更好的做法。

需要留意的實際限制

Base64 字串大約會膨脹三分之一,所以一個 90 KB 的 PNG 會變成大約 120 KB 的 ASCII。相同的膨脹也會套用於資料 URL 的外層包裝,而許多伺服器、CDN 與電子郵件用戶端對 URL 長度與內嵌酬載大小都有實際的限制。大多數瀏器在 CSS 中能容忍數 MB 的資料 URL,但行動版電子郵件用戶端經常會把字串截斷到遠低於該長度。一個實用的經驗法則是:當酬載會透過電子郵件或較舊的網頁框架傳遞時,將編碼後的圖片控制在 10 KB 以內。關於何時該使用 JPG 或 PNG 的指南是個很好的延伸閱讀,因為選擇較小的來源格式能讓 Base64 輸出保持在可控的大小。

反方向操作:將 Base64 還原為圖片

如果你已經有 Base64 字串並需要再次取得檔案,反向工具是 Base64 to Image Converter。它接受嚴格的 Base64 字串或完整的資料 URL,會根據支援的圖片格式驗證酬載,並讓你下載乾淨的 PNG、JPEG、GIF 或 WebP。這種往返轉換在以下情境很實用:從 CSS 檔案中還原嵌入的圖片、檢查從網路請求中擷取到的酬載,或在專案成長後把內嵌素材遷移為獨立檔案。

統整上述內容

對大多數日常工作來說,工作流程很短:選擇檔案、選擇純 Base64 或資料 URL、複製輸出、貼到該去的地方。在把字串提交到版本控制之前,先在螢幕上驗證 MIME 類型與尺寸,並記得 Base64 只是編碼,不是壓縮。如果編碼後的字串對該情境來說太大,通常比較好的做法是先使用 Image Compressor 縮小來源圖片,或使用 WebP Converter 轉成更有效率的格式,然後再重新編碼。針對像是從同一個來源檔案產生 favicon 等相關任務,favicon 產生指南會在同樣的全瀏覽器工作流程中介紹下一步。

如果你正在權衡各種選項,Remove EXIF Data from Photos in Your Browser 對此有詳細說明。

如果你正在權衡各種選項,Add a Solid Background to Any GIF in Your Browser 對此有詳細說明。