咨询:无需鼠标批量提取1x1图片像素RGB值的命令行工具
批量提取1x1图片RGB值的解决方案
方案一:Python + Pillow库(推荐)
这是最灵活且无版本依赖问题的实现方式:
- 先安装依赖:
pip install pillow - 写个简单脚本遍历目录处理:
import os from PIL import Image # 替换成你的目标图片目录 target_dir = "./your_1px_images" for filename in os.listdir(target_dir): # 筛选常见图片格式 if filename.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp', '.gif')): img_path = os.path.join(target_dir, filename) try: with Image.open(img_path) as img: # 获取唯一像素的颜色值 pixel = img.getpixel((0, 0)) # 处理RGBA格式,只保留RGB部分 rgb = pixel[:3] if len(pixel) == 4 else pixel print(f"{filename}: {rgb[0]}, {rgb[1]}, {rgb[2]}") except Exception as e: print(f"{filename}: 处理失败 - {str(e)}")
- 运行脚本后,所有图片的RGB值会直接输出到标准输出。
方案二:旧版ImageMagick的convert命令
如果不想用Python,试试用convert替代挂起的identify,旧版ImageMagick基本都自带这个命令:
for img in *.png *.jpg *.jpeg; do echo -n "$img: " convert "$img" -format "%[pixel:p{0,0}]" info:- | cut -d'(' -f2 | cut -d')' -f1 done
执行后会输出类似 test.png: 255,0,0 的结果。
方案三:专用工具rgbget
你提到的rgbget确实存在,部分Linux发行版可通过包管理器安装,批量处理可以结合shell循环:
for img in *.png *.jpg; do echo "$img: $(rgbget "$img")" done
如果系统没预装,可自行从开源仓库拉取源码编译安装。
内容的提问来源于stack exchange,提问作者Peter Flynn
相关产品推荐
相关产品推荐

