agentleFS
hesixianhesixian/claude-skills/image-inspector/SKILL.md

image-inspector

Skill0 starsChanged 3 months agoMITView on GitHub

Use when needing to read, understand, or analyze image files (.png/.jpg/.webp/.gif/.bmp/.tiff) — describing content, extracting EXIF/GPS/camera metadata, getting dominant colors, or preparing oversized and long images for visual reading. Provides a Python script for the data Claude cannot see by looking, plus preprocessing for reliable visual analysis.

  • Installs packages
  • In this repositoryOne other file it gives its agents.

The file

Files
SKILL.md

图片解析 Skill(image-inspector)

概述

解析图片的两条腿:

  1. 看不到的信息 — 由脚本提取:精确尺寸、格式、EXIF 拍摄参数、GPS 坐标、主色值、动图帧数。
  2. 看得到的内容 — 由你(Claude)用 Read 工具直接读图理解:画面内容、场景、对象、图表趋势、UI 结构。

脚本不做图像识别,它负责的是元数据与预处理。图片的语义理解一律由你直接读图完成。

何时使用

使用场景:

  • 用户让你"看看这张图/这张图是什么/描述一下这张图"
  • 需要图片的拍摄信息、地理位置、分辨率、主色
  • 图片过大或是长截图,直接读取会因缩放丢失细节
  • 分析图表、示意图、UI 截图、照片内容

不要用于:

  • 图中文字提取为主的需求(截图提字、扫描件、表格识别)→ 用 image-ocr skill
  • 非图片文件(PDF/Word/Excel)→ 用 document-reader skill
  • 随手看一张普通图片(只问"这是什么",不需要 EXIF/主色)→ 直接用 Read 工具读图,见下方成本说明

成本:只问"这是什么"时,直接读图更省

加载本 SKILL.md 约需 1500 token,而 Read 一张图最多约 1600 token(最长边超 1568px 会被自动缩放,形成天花板)。加载 skill 的成本 ≈ 直接看一整张大图。

实测(362×270 logo):直接读图仅 130 token;本 skill 输出 166 token 加上加载成本共 1644 token,贵了 12 倍。

判断很简单 —— 看脚本能否提供读图拿不到的东西:

需求选择
"这张图是什么" / 描述内容❌ 直接 Read 读图,不要调本 skill
EXIF、GPS、拍摄参数、精确主色值✅ 用本 skill,读图根本拿不到
超大图 / 长截图需切分✅ 用 --prep,否则细节丢失或超限
批量处理(同会话 5 张以上)✅ 加载成本被摊薄
--json 结构化数据喂下游程序✅ 读图无法替代

⚠️ --prep 建议不必盲从:脚本仅按宽高比与边长判定,未考虑绝对尺寸。小尺寸长条图(如 1125×192)虽触发提示,但直接读图无损且更省;信息密度高的截图压缩反而丢细节。

使用方式

步骤 1:先取元信息,拿到处理建议

python ~/.claude/skills/image-inspector/scripts/image_inspector.py 图片路径

输出里的 处理建议 一节会告诉你是否需要预处理。判定规则:

  • 最长边 > 1568px,或文件 > 5MB → 需要压缩
  • 宽高比超过 2.5:1(长截图)→ 需要切分
  • 动图 → 只有首帧能被静态读取

步骤 2:按需预处理

尺寸正常的图片跳过这步,直接进入步骤 3。

# 压缩 / 切分,产出文件路径会打印出来
python ~/.claude/skills/image-inspector/scripts/image_inspector.py 图片路径 --prep

长图会切成 xxx_part01.jpg、xxx_part02.jpg……相邻片有 10% 重叠,避免正好切断一行内容。

步骤 3:用 Read 工具读图理解内容

对原图(或步骤 2 产出的文件)调用 Read 工具,图片会作为视觉输入呈现给你,然后据此回答用户。长图的多个分片要逐个 Read,再综合成一个完整回答。

这一步是必须的 —— 脚本永远不会告诉你图里画了什么。

选项

选项说明
--jsonJSON 输出,含完整 EXIF 字段。程序化消费或需要全部 EXIF 时用
--colors N主色数量,默认 5;--colors 0 跳过(动图自动跳过)
--prep [目录]生成待读取副本,默认输出到原图同级 _prepared/
--max-dim N预处理最大边长,默认 1568
--slice-height N长图切片尺寸,默认 1568;0 禁用切分只做缩放

支持多个文件一次传入:image_inspector.py a.jpg b.png c.webp

输出示例

=== photo.jpg ===
路径: D:\pics\photo.jpg
格式: JPEG  模式: RGB  大小: 3.42MB
尺寸: 4032 x 3024 px  (12.19 MP, 宽高比 1.3333)
DPI: 72.0 x 72.0

-- 拍摄信息 --
  拍摄时间: 2026:03:15 14:22:08
  相机品牌: Apple
  相机型号: iPhone 15 Pro
  光圈: 1.78
  快门(秒): 0.001
  ISO: 64
  焦距(mm): 6.765

-- 地理位置 --
  纬度 31.230416, 经度 121.473701

-- 主色 --
  #8FA9C4  rgb(143, 169, 196)  占比 34.2%
  #3D4A52  rgb(61, 74, 82)  占比 21.7%

-- 处理建议 --
  ! 尺寸超过 1568px,建议先用 --prep 压缩后再读取

典型流程

用户:"这张图是什么?"

  1. 跑脚本 → 看是否有处理建议
  2. 有建议就 --prep,没有就跳过
  3. Read 图片 → 描述内容
  4. 若 EXIF 里有拍摄时间/地点等值得一提的信息,补充进回答

用户:"这照片什么时候在哪拍的?" 只跑脚本即可,拍摄信息 + 地理位置 就是答案,不需要 Read 图片。

用户:"分析这张长截图"

  1. --prep 切分
  2. 逐片 Read
  3. 综合成一个连贯回答,不要按分片罗列

依赖

pip install pillow

已确认当前环境:Pillow 12.0.0 可用。

常见问题

手机照片方向是躺着的 --prep 会按 EXIF Orientation 自动摆正。直接 Read 原图则可能是旋转的。

GPS 字段为空 多数截图、微信传输、社交平台下载的图片会被抹除 EXIF,属正常现象。

主色和视觉感受不符 主色基于像素占比统计,大面积背景会占据高比例。视觉主体的颜色请直接读图判断。

动图只能看到第一帧 脚本会标注总帧数。需要看特定帧请说明,可另行拆帧。

文件位置

  • 主脚本:~/.claude/skills/image-inspector/scripts/image_inspector.py
  • 依赖清单:~/.claude/skills/image-inspector/requirements.txt

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.