🔤

圖片轉 Base64 轉換器

拖入任何 JPG、PNG、WebP、GIF、SVG 或 BMP,獲得可複製的 Base64 Data URL — 以及預格式化的 CSS、HTML、Markdown、JSON 程式碼片段。100% 在瀏覽器內完成。

將圖片拖放到此處或點擊瀏覽

任意圖片格式。一次最多 20 個檔案。

或按 Ctrl/Cmd+V 從剪貼簿貼上

7 種輸出格式

原始、Data URI、HTML <img>、CSS background、Markdown、JSON 和 JS 字串 — 一次上傳全部生成。

📋

剪貼簿貼上

按 Ctrl/Cmd+V 即時編碼螢幕截圖,無需儲存檔案。

🛡️

零上傳

FileReader API 在本機處理一切。您的圖片從不離開裝置。

♾️

無檔案大小限制

僅受裝置記憶體限制。在 16GB 筆電上測試過 100MB+ 檔案。

什麼是 Base64 圖片編碼?

Base64 圖片編碼使用 64 個可列印字元將圖片檔案的二進位位元組轉換為 ASCII 字串。結果可直接嵌入 HTML、CSS、JavaScript、JSON 或 Markdown 中任何需要文字表示的位置,從而無需單獨的圖片檔案或 HTTP 請求。

編碼後的內容通常包裝為 Data URI,格式為 data:image/png;base64,<payload>。這由 RFC 2397 定義,Base64 字母表本身則在 RFC 4648 中規範。

開發者必須了解的關鍵事實:Base64 編碼後的圖片比原始二進位檔案大約 33%。這是數學上的固有屬性 — 每 3 位元組二進位變成 4 個 ASCII 字元。這個開銷是否重要完全取決於場景,下文將逐一展開。

何時使用 Base64(何時不要)

大多數線上教程把 Base64 內聯簡化為「總是好」或「總是壞」。真相是看場景。以下是我們在生產程式碼中使用的決策矩陣:

場景使用 Base64?原因
郵件簽名嵌入 logo✅ 必須許多郵件用戶端會封鎖外部圖片參照
關鍵 CSS 中 2 KB 以下圖示✅ 推薦節省一次往返;收益 > 33% 體積代價
單檔 HTML demo / bug 報告✅ 推薦自包含、無外部相依
Service Worker / PWA 啟動資源✅ 有時避免 SW 安裝期資源競爭
單元測試 fixture✅ 推薦測試自包含且可讀
CSS 或 HTML 中 > 10 KB 圖片❌ 反模式阻塞關鍵渲染路徑;無法獨立快取
HTTP/2 環境中任何圖片❌ 通常不好HTTP/2 多工已消除請求開銷
CSS 背景中的 SVG❌ 反模式URL-encoded SVG 更小且可被 CSS 操作
Base64 內聯用 33% 的體積增長換取一次更少的 HTTP 請求。HTTP/2 在 2015 年成為主流後,這個權衡在 ~2 KB 以上很少划算。

4 步將圖片轉換為 Base64

我們的免費圖片轉 Base64 轉換器使用 FileReader API 完全在您的瀏覽器中執行。檔案從未上傳 — 您可以在工具執行時在瀏覽器的網路(Network)標籤中親自驗證。

1

拖放或貼上圖片

拖放、點擊瀏覽,或按 Ctrl/⌘+V 從剪貼簿貼上螢幕截圖。

2

選擇輸出格式

在 Raw、Data URI、HTML、CSS、Markdown、JSON 或 JavaScript 字串輸出之間切換。

3

複製或下載

一鍵複製到剪貼簿,或將編碼文字下載為 .txt 檔案。

4

在程式碼中驗證

貼到您的 HTML、CSS 或 React 元件中。Data URL 在任何現代瀏覽器中原生渲染。

Base64 輸出的 7 種用法

同一份 Base64 內容服務於 7 種獨特的生產場景。我們工具中每個 tab 都輸出對應格式的可複製片段。

郵件簽名

嵌入 logo 讓其在 Outlook、Gmail 和 Apple Mail 中無需外部載入即可渲染。

<img src="data:image/png;base64,iVBOR..." alt="Logo" />

CSS 背景

內聯 2 KB 以下的圖示,從關鍵 CSS 中省掉一次 HTTP 往返。

background: url("data:image/svg+xml;base64,PHN2..")

React 預覽

在檔案傳送給伺服器前顯示上傳預覽。

<img src={`data:image/jpeg;base64,${b64}`} />

Markdown bug 報告

用於 GitHub issue 的自包含 markdown — 不會隨時間出現損壞的圖片連結。

![Screenshot](data:image/png;base64,iVBOR...)

JSON API

當結構化 schema 僅允許文字欄位時,將圖片以 JSON 傳輸。

{ "image": "data:image/png;base64,..." }

JavaScript 常數

將資源直接打包到建置中,實現零執行時資源拉取。

const logo = "data:image/png;base64,...";

TinyImagePro vs 其他 Base64 工具

我們用過六款其他 Base64 轉換器後才決定自建本工具,發現每款都有妥協 — 檔案大小限制、缺少輸出格式、伺服器上傳或零文件。競品對比如下:

工具用戶端檔案上限輸出格式數完整 FAQ
TinyImagePro受 RAM 限制7✅ 8 題
base64.guru❌ 上傳50 MB10
base64-image.de1 MB2部分
browserling未標1
jam.dev4 MB3
codebeautify未標1

對於敏感內容(醫療影像、內部產品圖、未發佈 logo),用戶端轉換是唯一選項。base64.guru 的 50 MB 上限聽起來不錯,但如果您根本不能上傳檔案就毫無意義。

效能與最佳實踐

「33% Base64 開銷」這個數字誤導的開發者比任何 web 效能數字都多。真正影響頁面載入的是 gzip 或 brotli 壓縮後的體積 — 而 Base64 字串與二進位的壓縮特性截然不同。

資源原始Base64開銷gzip 後
PNG 圖示(1 KB)1.0 KB1.4 KB+40%+5%
PNG(10 KB)10 KB13.4 KB+34%+12%
JPG 照片(50 KB)50 KB66.8 KB+34%+30%
SVG(小圖示)0.5 KB0.7 KB+40%URL-encoded SVG: −10%
gzip 壓縮顯著降低了 Base64 體積懲罰。10 KB PNG 作為 Base64 時大 34%,但 gzip 後只大 12% — 這讓小資源的 Base64 內聯實際成本遠低於表面值。

5 條最佳實踐

內聯 2 KB 以下的資源。超過此尺寸,bundler 膨脹和快取失效成本超過節省的請求。

切勿內聯 LCP(Largest Contentful Paint)圖片。它們會阻塞關鍵渲染並阻止瀏覽器優先順序排序。

對於 SVG,使用 URL-encoded SVG,不要用 Base64。URL-encoded SVG 更小且可被 CSS 操作(currentColor、動畫)。

先用我們的 PNG 或 JPEG 工具壓縮圖片 — Base64 會繼承所編碼內容的體積。

如果跨域提供 Base64 資源,新增允許 data: 出現在 img-src 和 style-src 中的 Content-Security-Policy。

關於圖片轉 Base64 的常見問題

我的圖片會上傳到你們的伺服器嗎? 不會。TinyImagePro 使用瀏覽器 FileReader API 讀取每個檔案並在本機處理。您可以在頁面載入後斷開網路,轉換仍可正常運作。可在瀏覽器的網路(Network)標籤中驗證。

為什麼 Base64 字串比原圖大約 33%? Base64 將每 3 位元組二進位表示為 4 個 ASCII 字元 — 數學上 33.3% 的開銷,未計入換行和 data:image/...;base64, 前綴。經過 gzip 後,小資源的實際開銷降至 5–15%。

可以用於 SVG 嗎? 可以,但對 SVG 應優先考慮 URL-encoded SVG — 更小且可被 CSS 樣式操作。我們支援 SVG 輸入便於您實驗,但 PNG 轉 SVG 工具 是向量化工作流更好的入口。

如何把 Base64 解碼回圖片? 將 Data URL 貼到瀏覽器網址列 — 現代瀏覽器原生渲染 data:image/... URL。程式設計方式可用 JavaScript 的 atob() 或 Python 的 base64.b64decode()。專門的 Base64 轉圖片工具在我們的藍圖中。

PNG to SVG converterHEIC to JPEG converter

常見問題

是的 — 100% 免費,無需註冊,無浮水印,無速率限制。轉換完全在您的瀏覽器中透過 FileReader API 完成。

不會。檔案透過瀏覽器 FileReader API 在本機讀取。您可以在頁面載入後斷開網路,轉換仍然可用。

沒有硬性限制,僅受裝置 RAM 限制。我們已在 16GB 筆電上成功測試 100MB 的 PNG 檔案。

base64.guru 提供更多輸出格式(10 vs 我們 7)但會上傳檔案到伺服器。base64-image.de 用戶端處理但檔案上限僅 1MB。我們結合了用戶端隱私 + 無大小限制 + 7 種生產就緒輸出格式。

Base64 將每 3 位元組二進位表示為 4 個 ASCII 字元 — 數學上 33.3% 的開銷。經過 gzip 壓縮傳輸後,小資源的實際開銷降至 5-15%。

避免對關鍵渲染路徑上 ~2KB 以上的圖片、希望瀏覽器獨立快取的圖片、以及 SVG(URL-encoded SVG 更小且可被 CSS 操作)使用 Base64。

JPEG、PNG、WebP、GIF、BMP、ICO、SVG 都直接支援。HEIC 需要先轉換 — 使用我們的 HEIC 轉 JPEG 工具。

將 Data URL 貼到瀏覽器網址列 — 現代瀏覽器原生渲染 data:image/... URL。程式設計則用 JavaScript 的 atob() 或 Python 的 base64.b64decode()。

圖片轉 Base64 — 免費、用戶端處理 | TinyImagePro