如何將圖片轉換為 Base64 用於 Vision API 請求
發佈於 2026 年 2 月 22 日 · 閱讀約 5 分鐘
Vision API 為什麼需要 Base64
OpenAI GPT-4o、Google Cloud Vision、Anthropic Claude、Qwen-VL 等現代視覺 API 接受兩種圖片輸入方式:指向圖片的公開 URL,或將原始圖片資料編碼為 Base64 字串直接嵌入 JSON 請求體中。
如果圖片已經託管在線上,URL 方式很簡單。但在許多實際場景中,圖片在你的本機上:剛截取的螢幕截圖、掃描的文件、從影片中擷取的影格,或開發流水線中的測試圖片。這些情況下,Base64 編碼是最直接的方式——它讓你無需先上傳到伺服器就能將圖片直接嵌入 API 請求體中。
典型的帶 Base64 的 Vision API 請求如下:
{
"model": "gpt-4o",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What's in this image?"
},
{
"type": "image_url",
"image_url": {
"url": "data:image/png;base64,iVBORw0KGgo..."
}
}
]
}
]
} 挑戰在於如何將本機檔案轉換為 Base64 字串,特別是在開發和測試過程中需要反覆操作時。
常見方法(及其不足)
1. Python 指令碼
import base64
with open("screenshot.png", "rb") as f:
encoded = base64.b64encode(f.read()).decode()
print(encoded) 可以用,但需要安裝 Python,需要撰寫(或找到)指令碼,然後從終端機複製輸出。如果反覆測試不同的圖片,每次都要執行指令碼,再手動將輸出貼到 JSON 中。
2. 命令列
# macOS / Linux
base64 -i screenshot.png | pbcopy
# Windows PowerShell
[Convert]::ToBase64String([IO.File]::ReadAllBytes("screenshot.png")) | Set-Clipboard 如果記得語法,速度很快,但輸出只是一個純字串。你沒辦法驗證結果——是正確的圖片嗎?編碼正確嗎?只有在傳送 API 請求並檢查結果後才能知道。
3. 線上 Base64 轉換器
很多網站提供拖曳式的檔案轉 Base64 功能。但顯而易見的問題是:你的檔案會上傳到別人的伺服器。測試用的截圖或許無所謂,但專有資料、內部文件、醫療影像或任何受保密協定約束的內容就不行了。
更好的方式:貼上、預覽、複製
ViewJSON 提供了更簡單的流程。將圖片直接貼到編輯器中,即時取得 Base64 字串,所有操作都在瀏覽器中完成:
- 開啟 ViewJSON — 前往 viewjson.net
- 貼上圖片 — 從任意位置(檔案管理員、截圖工具、瀏覽器、設計軟體)複製圖片,然後在 JSON 編輯器中按 Ctrl+V 貼上
- 查看預覽 — ViewJSON 會自動將圖片轉換為 Base64 並插入為 JSON 字串值。內聯圖片預覽會立即出現,方便你確認是否是正確的圖片。
- 複製 Base64 — 點選複製按鈕或選取字串值。你會取得完整的 Base64 編碼字串,可直接貼到 API 請求體中。
完整操作流程:
處理大型 Base64 字串
Base64 編碼的圖片可能非常長。一張高解析度 JPEG 能產生超過 100,000 個字元。為了保持編輯器流暢,ViewJSON 會自動截斷長字串的顯示。但截斷只是視覺上的。
當你複製一個被截斷的 Base64 值時,ViewJSON 的無損剪貼簿恢復機制會自動介入。它會偵測到你正在複製截斷的字串,並自動將完整的原始內容恢復到剪貼簿。你得到的始終是完整的、未修改的 Base64 字串,不會是會導致檔案損壞的截斷版本。
建構完整的 API 請求體
取得 Base64 字串後,需要將其封裝為正確的 API 格式。以下是常見 Vision API 的範例:
OpenAI GPT-4o Vision
{
"model": "gpt-4o",
"messages": [
{
"role": "user",
"content": [
{ "type": "text", "text": "Describe this image" },
{
"type": "image_url",
"image_url": {
"url": "data:image/png;base64,<YOUR_BASE64_HERE>"
}
}
]
}
],
"max_tokens": 300
} Google Cloud Vision
{
"requests": [
{
"image": {
"content": "<YOUR_BASE64_HERE>"
},
"features": [
{ "type": "TEXT_DETECTION" }
]
}
]
} 在 ViewJSON 中貼上圖片後,複製生成的 Base64 字串並插入到 API 請求體中。你也可以使用 ViewJSON 的 API 請求建構器來設定 URL、請求方法、標頭和請求體,然後將整個請求匯出為 cURL 命令。
隱私:無需上傳
與線上 Base64 轉換網站不同,ViewJSON 完全在瀏覽器中執行。圖片轉
Base64 的過程使用瀏覽器內建的 FileReader API 在本地完成,你的圖片不會傳送到任何伺服器。
這使得它適合轉換敏感圖片:用於醫療 AI 介面的醫學影像、用於 OCR 服務的內部文件、用於視覺搜尋系統的專有產品圖片,或任何你不想上傳到第三方轉換器的檔案。
方法對比
| 方法 | 可預覽? | 隱私 | 步驟數 |
|---|---|---|---|
| Python 指令碼 | ❌ 不可 | ✅ 本地 | 4-5 步 |
| 命令列 | ❌ 不可 | ✅ 本地 | 3-4 步 |
| 線上轉換器 | ⚠️ 部分支援 | ❌ 需上傳 | 3-4 步 |
| ViewJSON | ✅ 內聯預覽 | ✅ 100% 本地 | 2 步 |
立即體驗
將任意圖片貼到 ViewJSON,即時取得 Base64 字串。無需指令碼、無需上傳、無隱私顧慮。
開啟 ViewJSON →