image-reader-xytest
v1.0.0识别本地图片内容(支持中文),通过 OCR.space 免费 API 实现。
Security Scan
OpenClaw
Benign
high confidencePurpose & Capability
Name/description (local OCR using OCR.space) align with the included Python script and SKILL.md. The script performs image resizing, base64-encodes the image, and posts to api.ocr.space — functionality expected for this purpose.
Instruction Scope
Instructions only run the provided script against a local image path and require Pillow; they do not read unrelated files or environment variables. Note: the script transmits the image content to OCR.space (a third-party endpoint) and writes the recognized text to a file in the skill's scripts directory, which are privacy-relevant behaviors users should be aware of.
Install Mechanism
No install spec; this is an instruction-only skill that requires Python and the Pillow package (pip). Nothing is downloaded or written by an installer.
Credentials
No environment variables or credentials are requested. The script hardcodes OCR.space's public demo API key ('helloworld'), which is consistent with a demo usage but has limited quota and is not a secret; no unrelated credentials are present.
Persistence & Privilege
The skill does not request persistent/always-on presence and does not modify other skills or system-wide settings. It writes an output file to its own scripts directory, which is expected for a local OCR helper.
Assessment
This skill appears internally consistent with its purpose. Before installing, consider: (1) Privacy — your image is uploaded to a third-party service (api.ocr.space); do not send sensitive images unless you accept that. (2) Output file — recognized text is saved under the skill's scripts folder as <image_name>_ocr.txt; check/write permissions. (3) API key — the script uses the public demo key 'helloworld' (limited quota); if you need production use, replace it with your own OCR.space API key (modify the script to accept an env var for the key to avoid hardcoding). (4) Dependencies — ensure Python 3 and Pillow are installed. If you want stronger guarantees, review/modify the script to avoid sending sensitive images or to use an on-prem OCR solution.Like a lobster shell, security has layers — review code before you run it.
latest
image-reader Skill
识别本地图片内容(支持中文),通过 OCR.space 免费 API 实现。
工作流程
- 接收图片路径
- 调用 OCR.space API 进行识别
- 返回识别结果
Python 脚本
保存到 {skill_root}/scripts/ocr_image.py:
import urllib.request, urllib.parse, base64, io, json, sys
from PIL import Image
img_path = sys.argv[1] if len(sys.argv) > 1 else sys.stdin.read().strip()
img = Image.open(img_path)
img_small = img.resize((1600, 2400), Image.LANCZOS)
buf = io.BytesIO()
img_small.save(buf, format='JPEG', quality=80)
b64_data = base64.b64encode(buf.getvalue()).decode()
url = 'https://api.ocr.space/parse/image'
params = urllib.parse.urlencode({
'base64Image': 'data:image/jpeg;base64,' + b64_data,
'language': 'chs',
'isOverlayRequired': 'false',
'detectOrientation': 'true',
'scale': 'true',
'OCREngine': '2',
})
data = params.encode('utf-8')
req = urllib.request.Request(url, data=data)
req.add_header('Content-Type', 'application/x-www-form-urlencoded')
req.add_header('apikey', 'helloworld') # OCR.space free demo key
with urllib.request.urlopen(req, timeout=30) as resp:
raw = resp.read()
result = json.loads(raw.decode('utf-8', errors='replace'))
if 'ParsedResults' in result:
for r in result['ParsedResults']:
print(r['ParsedText'])
else:
print('OCR识别失败:', result)
使用方式
python {skill_root}/scripts/ocr_image.py "F:/1.jpg"
依赖
- Python 3
- Pillow (
pip install pillow)
Comments
Loading comments...
