View JS N

Vision API リクエスト用に画像を Base64 に変換する方法

2026 年 2 月 22 日公開 · 約 5 分で読めます

Vision API が Base64 を必要とする理由

OpenAI GPT-4o、Google Cloud Vision、Anthropic Claude、Qwen-VL といった最新の画像認識 API は、画像を 2 つの方法で受け付けます。1 つは画像の公開 URL を指定する方法、もう 1 つは画像データを 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 変換ツール

ドラッグ&ドロップで変換できるサイトは多数ありますが、明らかな問題があります:ファイルが他人のサーバーにアップロードされるということです。テスト用のスクリーンショットなら問題ないかもしれませんが、社内資料、医療画像、NDA の対象となるデータには使えません。

もっと良い方法:貼り付けて、プレビューして、コピー

ViewJSON なら、もっとシンプルにできます。画像をエディターに直接貼り付けるだけで Base64 文字列が即座に生成され、すべてブラウザ内で完結します:

  1. ViewJSON を開く ── viewjson.net にアクセス
  2. 画像を貼り付ける ── ファイルエクスプローラー、スクリーンショットツール、ブラウザ、デザインツールなどから画像をコピーし、JSON エディター内で Ctrl+V を押すだけ
  3. プレビューを確認する ── ViewJSON が自動的に画像を Base64 に変換し、JSON 文字列として挿入します。インラインのプレビューがすぐに表示されるので、正しい画像かどうかをその場で確認できます。
  4. Base64 をコピーする ── コピーボタンをクリックするか文字列を選択するだけ。完全な Base64 エンコード文字列が取得でき、API リクエストにそのまま使えます。

操作の全体像:

デモ:ViewJSON に画像を貼り付けて、インラインプレビュー付きの Base64 文字列を取得する

巨大な Base64 文字列の処理

Base64 エンコードされた画像は非常に長くなることがあります。高解像度の JPEG 1 枚で 10 万文字を超えることも珍しくありません。エディターの動作を軽快に保つため、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 ✅ インライン ✅ 完全ローカル 2 ステップ

今すぐ試す

画像を ViewJSON に貼り付けるだけで、Base64 文字列を即座に取得。スクリプト不要、アップロード不要、プライバシーの心配もなし。

ViewJSON を開く →