教程

Claude API Vision 图像理解完全指南:图片分析、截图解读与多图处理

Claude API 视觉能力(Vision)完整使用指南:支持的图像格式(PNG/JPEG/GIF/WebP)与大小限制、Base64 编码图像传入方式、URL 直接引用图像、多张图片同时分析、图像与文字混合输入、典型应用场景(截图调试/图表解读/文档扫描/UI分析)、图像 Token 计算方式和成本优化,以及 Python/TypeScript 完整代码示例。

2026/3/204分钟 阅读ClaudeEagle

Claude 的视觉能力让它能够「看懂」图片——分析截图、解读图表、 识别文档内容,在软件开发和内容处理中有大量实用场景。

支持的图像规格

属性规格
支持格式PNG、JPEG、GIF(静态)、WebP
最大文件大小单图 5 MB(Base64 编码前)
最大分辨率无硬性限制,但过大会自动缩放
单次请求图像数最多 20 张

两种传图方式

方式一:Base64 编码(本地文件)

Python:

python
import anthropic
import base64

client = anthropic.Anthropic()

with open("screenshot.png", "rb") as f:
    image_data = base64.standard_b64encode(f.read()).decode("utf-8")

message = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    messages=[{
        "role": "user",
        "content": [
            {
                "type": "image",
                "source": {
                    "type": "base64",
                    "media_type": "image/png",  # image/jpeg / image/gif / image/webp
                    "data": image_data,
                },
            },
            {"type": "text", "text": "这张截图里的错误信息是什么?如何修复?"},
        ],
    }],
)
print(message.content[0].text)

TypeScript:

typescript
import Anthropic from "@anthropic-ai/sdk";
import * as fs from "fs";

const client = new Anthropic();
const imageData = fs.readFileSync("error.png").toString("base64");

const response = await client.messages.create({
  model: "claude-sonnet-4-6",
  max_tokens: 1024,
  messages: [{
    role: "user",
    content: [
      {
        type: "image",
        source: { type: "base64", media_type: "image/png", data: imageData },
      },
      { type: "text", text: "描述这张图片中的主要内容" },
    ],
  }],
});

方式二:URL 直接引用(在线图片)

python
message = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    messages=[{
        "role": "user",
        "content": [
            {
                "type": "image",
                "source": {
                    "type": "url",
                    "url": "https://upload.wikimedia.org/wikipedia/commons/thumb/4/47/PNG_transparency_demonstration_1.png/200px-PNG_transparency_demonstration_1.png",
                },
            },
            {"type": "text", "text": "这张图片里有什么?"},
        ],
    }],
)

URL 图像会被 Claude 实时下载,需要 URL 公开可访问。 私有图片推荐用 Base64 方式

多张图片同时分析

python
# 对比两张截图,找差异
with open("before.png", "rb") as f:
    before = base64.standard_b64encode(f.read()).decode("utf-8")
with open("after.png", "rb") as f:
    after = base64.standard_b64encode(f.read()).decode("utf-8")

message = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=2048,
    messages=[{
        "role": "user",
        "content": [
            {"type": "text", "text": "这是重构前的截图:"},
            {"type": "image", "source": {"type": "base64", "media_type": "image/png", "data": before}},
            {"type": "text", "text": "这是重构后的截图:"},
            {"type": "image", "source": {"type": "base64", "media_type": "image/png", "data": after}},
            {"type": "text", "text": "对比两张图,UI 发生了哪些变化?"},
        ],
    }],
)

典型应用场景

1. 截图调试(开发利器)

python
# 结合 Claude Code:截图 → 直接分析报错
def analyze_screenshot(screenshot_path: str, question: str) -> str:
    with open(screenshot_path, "rb") as f:
        img = base64.standard_b64encode(f.read()).decode("utf-8")

    msg = client.messages.create(
        model="claude-sonnet-4-6",
        max_tokens=2048,
        messages=[{
            "role": "user",
            "content": [
                {"type": "image", "source": {"type": "base64",
                  "media_type": "image/png", "data": img}},
                {"type": "text", "text": question},
            ],
        }],
    )
    return msg.content[0].text

# 使用:截图后直接问 Claude
result = analyze_screenshot(
    "browser-error.png",
    "这个浏览器控制台的错误是什么原因?对应的代码应该如何修改?"
)

2. 图表数据提取

你:[上传折线图截图] 把这张图表里的数据提取成 CSV 格式 Claude: month,sales 2025-01,1234 2025-02,1456 ...(准确提取坐标数据)

3. UI 设计分析

python
# 分析竞品 UI
msg = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=2048,
    messages=[{
        "role": "user",
        "content": [
            {"type": "image", "source": {"type": "url", "url": competitor_screenshot_url}},
            {"type": "text", "text": "分析这个登录页面的 UX 设计:用了哪些设计模式?有什么可以改进的地方?"},
        ],
    }],
)

4. 文档/表格识别(OCR+理解)

python
# 识别手写笔记或扫描文档
msg = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=4096,
    messages=[{
        "role": "user",
        "content": [
            {"type": "image", "source": {"type": "base64",
              "media_type": "image/jpeg", "data": document_b64}},
            {"type": "text", "text": "识别并整理这份扫描文档的内容,输出 Markdown 格式"},
        ],
    }],
)

图像 Token 计费

图像占用的 Token 数取决于尺寸(尺寸越大 Token 越多):

图像尺寸大约 Token 数
256×256~170 tokens
512×512~~340 tokens
1024×1024~1300 tokens
1568×1568(最大)~1600 tokens

图像 Token 以输入 Token 计费。 优化建议:提交前将图像压缩到 1024px 以内,可节省 50%+ 费用。


来源:Anthropic 官方文档 - docs.anthropic.com/en/docs/build-with-claude/vision

相关文章推荐

教程Claude API 流式输出完全指南:Server-Sent Events 实时响应实战Claude API 流式输出(Streaming)完整教程:为什么用流式输出(用户体验提升50%+)、Server-Sent Events 协议原理、Python/Node.js/curl 三种实现方式、stream=True 的事件类型(message_start/content_block_delta/message_stop)、流式 Tool Use 的特殊处理、在 FastAPI/Express/Next.js 中实现流式 API 端点,以及流式输出的错误处理和超时配置。2026/3/20教程Anthropic Node.js SDK 完全指南:TypeScript/JavaScript 接入 Claude APIAnthropic 官方 Node.js SDK(@anthropic-ai/sdk)完整教程:安装与初始化、基础对话调用、流式输出(stream)、图像输入(Base64/URL)、Tool Use 函数调用、系统提示、消息历史管理、Prompt Caching 配置、错误处理最佳实践(指数退避重试),以及 TypeScript 类型系统深度使用,适合 Node.js / Next.js / NestJS 开发者快速上手。2026/3/20教程Anthropic Python SDK 完全指南:从安装到生产级集成的最佳实践Anthropic Python SDK 完整使用指南:安装配置、同步与异步客户端、流式输出、工具调用(Tool Use)、视觉 API、Prompt Caching、错误处理与重试、Token 用量追踪、httpx 客户端自定义,以及在 Django/FastAPI/Flask 框架中的集成最佳实践。2026/3/16教程Claude API Key 申请完整教程:从注册 Anthropic Console 到第一次调用Claude API Key 申请完整指南:Anthropic Console 注册、充值方式、API Key 生成与管理、Python/curl 第一次调用验证、用量监控、费用控制与限额设置,以及免费额度和各模型计费说明。2026/3/15教程大模型 Token 是什么?如何估算成本并减少 API 费用大模型 Token 完整解析:Token 定义与中英文计算规律、API 费用双向计费机制、上下文长度与成本关系,以及 5 个降低 API 费用的方法(选对模型/批量 API 省 50%/Prompt 缓存省 90%/控制输出长度/管理对话上下文),附 Anthropic Console 成本监控指南。2026/3/13教程Claude API 接入完全教程:从零开始调用 Claude,Python/Node.js 实战(2026)Claude API 从零接入完整教程:Console 注册与 API Key 获取、核心接口概览、Python/Node.js SDK 安装与首次调用、多轮对话、流式输出、System Prompt 配置、REST 直调、模型选择、Token 成本控制与批量 API 省费技巧。2026/3/13