Base64 編碼的圖片是原始二進位像素的純文字表示方式。這種編碼使用 64 個 ASCII 字元(A–Z、a–z、0–9、+、/),再加上選填的填補字元(=),將每 6 個位元的二進位資料對應到一個可列印的字元。當你解碼這段字串時,就是反向執行這個對應,並重建出構成 JPG、PNG、GIF 或 SVG 檔案的完整位元組序列。由於這個過程是無損的,解碼後的圖片與原始圖片在像素層級完全一致。

凡是二進位資料必須透過純文字協定傳輸時,Base64 就會被廣泛使用:電子郵件附件、JSON 或 XML 酬載、HTML 中的內嵌 <img> 標籤,甚至某些資料庫欄位,都可以看到它的身影。行動應用程式經常將小圖示或縮圖嵌入為 Base64 字串,以避免額外的網路請求,而網頁 API 也常以相同格式回傳圖片預覽。如果你收到一段很長的字串,開頭是 data:image/,或是看起來像一堆隨機的字母、數字和加號,那它幾乎可以確定就是一段等待被解碼的 Base64 編碼圖片。

只要擁有合適的工具,將字串解碼回圖片其實非常簡單。你不需要安裝任何東西、不必撰寫程式碼,也不用把字串上傳到第三方伺服器。本站的 Base64 編碼 / 解碼 工具完全在你的瀏覽器中執行,整個處理流程都保持在本地端。貼上字串、點選「Decode」,你就能立刻看到原始的位元組,也可以將其儲存成檔案。工具會自動去除像 data:image/jpeg;base64, 這類常見的前綴,讓你可以原封不動地貼上收到的字串。

base64 decode image
base64 decode image

什麼時候需要解碼 Base64 圖片

  • 網頁開發:從 HTML <img> 標籤或 JSON 回應中取出內嵌的圖片,以便在 Photoshop 中編輯或上傳至 CMS。
  • 行動應用程式:將從後端 API 收到的 Base64 字串轉回 UIImage 或 Bitmap,以便在畫面上顯示。
  • 電子郵件附件:還原那些以一長串文字區塊形式夾帶在郵件內文中,而不是以獨立附件形式傳送的圖片。
  • 資料庫匯出:從 CSV 或 SQL 匯出檔中,將以 Base64 字串儲存的圖片還原成一般檔案,方便檢視或封存。
  • 除錯:當某段 Base64 字串在瀏覽器或應用程式中無法正確顯示時,可以將其解碼並與預期的檔案內容比對。

在瀏覽器中解碼 Base64 圖片

  1. 在任何現代瀏覽器中開啟 Base64 編碼 / 解碼 工具。
  2. 確認頂部的切換鈕設定為「Decode (Base64 → text)」。
  3. 將整段 Base64 字串貼入輸入框中。字串可以包含選填的前綴 data:image/xxx;base64,——工具會自動忽略。
  4. 輸出框會即時更新。如果字串有效,就會顯示解碼位元組的預覽畫面,或出現下載檔案的提示。
  5. 點選「Copy」按鈕將原始二進位資料複製到剪貼簿,或點選「Download」將圖片以正確的副檔名(JPG、PNG、GIF 等)儲存成檔案。
  6. 如果字串格式不正確,工具會顯示清楚的錯誤訊息,讓你能修正輸入後再試一次。

常見的 Base64 圖片前綴及其意義

前綴 MIME 類型 檔案副檔名 常見用途
data:image/jpeg;base64, image/jpeg .jpg 或 .jpeg 採用有損壓縮的高品質照片或圖片。
data:image/png;base64, image/png .png 螢幕截圖、標誌、含透明區域或銳利邊緣的圖片。
data:image/gif;base64, image/gif .gif 簡易動畫、低色彩數的圖片或小型裝飾圖示。
data:image/svg+xml;base64, image/svg+xml .svg 可縮放的向量圖形、圖示或圖表,無論放大縮小都能保持清晰。
data:image/webp;base64, image/webp .webp 檔案大小比 JPG 或 PNG 更小的現代網頁圖片格式。

這些前綴定義於 RFC 2397,並受到瀏覽器、電子郵件用戶端及 API 的廣泛支援。當你貼上以這類前綴開頭的字串時,Base64 編碼 / 解碼 工具會在解碼實際的 Base64 內容之前自動去除前綴。這代表你可以原封不動地貼上收到的字串,不必先手動編輯。

工具如何處理特殊情況

  • 填補字元:Base64 字串經常會以一個或兩個等號(=)作為結尾,讓總長度成為 4 的倍數。本工具同時接受有填補與無填補的字串。
  • 空白字元:字串中任何位置的換行、空格或定位字元都會被忽略,因此你可以直接從格式化的 JSON 或 XML 中複製貼上,無須事先清理。
  • Unicode 與表情符號:雖然 Base64 本身只編碼二進位資料,但工具支援完整 UTF-8 字元集在周圍文字中的使用。當你解碼的 JSON 酬載同時包含 Base64 編碼的圖片與含有腔調字或表情符號的描述文字時,這項功能特別好用。
  • 大型檔案:本工具可在毫無延遲的情況下解碼大小達 10 MB 的字串。若圖片更大,瀏覽器可能會多花一兩秒處理資料,但整個運算仍完全在裝置本地端進行。
  • 毀損的輸入:若字串含有 Base64 字元集之外的字元,或長度不正確,工具會顯示清楚的錯誤訊息,而不是悄悄產生亂碼輸出。

解碼 Base64 圖片的替代方法

雖然瀏覽器工具是解碼單張圖片最快的方式,但若你需要自動化處理或一次處理大量檔案,仍有其他方法可用。

  • 命令列(Linux/macOS):
    echo -n "BASE64_STRING" | base64 --decode > image.jpg

    將 BASE64_STRING 替換為實際的字串(不含前綴),並把 image.jpg 換成想要的檔名。如果字串含有前綴,可以用以下指令去除:

    echo -n "data:image/jpeg;base64,BASE64_STRING" | sed 's/^data:image\/[^;]*;base64,//' | base64 --decode > image.jpg
  • Python:
    import base64
    
    base64_string = "BASE64_STRING_WITH_OR_WITHOUT_PREFIX"
    if "," in base64_string:
        base64_string = base64_string.split(",")[1]
    
    image_data = base64.b64decode(base64_string)
    with open("image.jpg", "wb") as f:
        f.write(image_data)
    

    這段腳本無論是否含有前綴都能運作,並會將解碼後的資料儲存為檔案。你可以在我們的指南 免安裝任何軟體,直接從命令列解碼 Base64 中找到更多細節。

  • JavaScript(瀏覽器主控台):
    const base64String = "BASE64_STRING_WITH_OR_WITHOUT_PREFIX";
    const byteString = atob(base64String.includes(",") ? base64String.split(",")[1] : base64String);
    const mimeString = base64String.split(",")[0].split(":")[1].split(";")[0];
    const ab = new ArrayBuffer(byteString.length);
    const ia = new Uint8Array(ab);
    for (let i = 0; i < byteString.length; i++) {
        ia[i] = byteString.charCodeAt(i);
    }
    const blob = new Blob([ab], { type: mimeString });
    const url = URL.createObjectURL(blob);
    const a = document.createElement("a");
    a.href = url;
    a.download = "image." + mimeString.split("/")[1];
    a.click();
    

    在瀏覽器的主控台中執行這段程式碼,就能直接下載圖片。這段程式碼同時處理含有與不含前綴的字串。

解碼圖片後可以怎麼做

當你將 Base64 字串解碼並存成圖片檔之後,可以:

  • 檢視圖片:用任何圖片檢視器或瀏覽器開啟,雙擊檔案即可。
  • 編輯圖片:使用 Photoshop、GIMP,或甚至線上編輯器來裁切、調整大小或套用濾鏡。
  • 上傳圖片:將檔案傳送到雲端服務、社群平台,或你自己的網站。
  • 轉換格式:使用像 文字轉 HEX 之類的工具,或專門的圖片轉檔工具,將 JPG 轉成 PNG,反之亦然。
  • 驗證圖片:檢查檔案屬性,確認尺寸、檔案大小與 MIME 類型都符合預期。

如果解碼出來的圖片看起來不正確,請重新檢查原始的 Base64 字串,看看是否有缺漏字元或多了空白。只要有一個字元錯誤,就可能毀損整個檔案。Base64 編碼 / 解碼 工具會標示出任何無效的輸入,讓你在儲存輸出之前先修正。

延伸閱讀:一鍵將 Base58 字串解碼回可讀資料。

延伸閱讀:透過 Base64 轉 HEX 轉換器,快速將十進位轉換為十六進位。