使用ImageMagick根据x、y坐标获取指定像素颜色的问题求助
问题根源
ImageMagick 默认使用左上角为坐标原点(0,0),你现有命令的偏移参数完全没有命中你要的x=19、y=14位置,才会取到无关的蓝色像素值。
你写的-crop "1x1+0+%[fx:h-7]+0"存在两个问题:
- 参数格式错误,合法的crop参数结构为
宽x高+X轴偏移+Y轴偏移,末尾多余的+0属于无效参数 - 偏移值完全不对:你指定了X偏移为0,Y偏移为图片高度减7(你的图片高20,计算后Y偏移为13),实际取的是坐标
(0,13)的像素,和你需要的(19,14)完全不匹配
解决方案
方法1:直接指定坐标取值(更简单,无需裁剪)
直接在format参数里指定目标像素坐标即可,完整命令如下:
convert 你的图片路径.png -format "%[hex:u.p{19,14}]\n" info:
方法2:使用crop裁剪后取值
如果需要用裁剪的方式,把crop参数修改为对应坐标的偏移即可:
convert 你的图片路径.png -crop "1x1+19+14" -format "%[hex:u.p{0,0}]\n" info:
特殊说明
如果你使用的坐标规则是左下角为原点(0,0),需要先对Y坐标做转换:目标Y偏移 = 图片高度 - 1 - 你的Y坐标,你的20高度的图片对应Y偏移为 20-1-14=5,对应命令调整为:
# 直接取值的版本 convert 你的图片路径.png -format "%[hex:u.p{19,5}]\n" info:
内容的提问来源于stack exchange,提问作者user17027702
相关产品推荐
相关产品推荐

