用ImageMagick获取颜色值
看了一部分ImageMagick的官方范例,用convert命令的txt:转换可以把点阵图片转换成文本文件,其中包含了每一个像素的颜色信息。包括:
- 坐标
- 颜色RGB值
- 颜色code
例子
例如这张ImageMagick自带的玫瑰:
处理命令:
- rosehead.sh
convert rose: txt:- | head 7
输出结果:
# ImageMagick pixel enumeration: 70,46,255,rgb 0,0: ( 48, 47, 45) #302F2D rgb(48,47,45) 1,0: ( 50, 48, 46) #32302E rgb(50,48,46) 2,0: ( 54, 50, 47) #36322F rgb(54,50,47) 3,0: ( 56, 51, 46) #38332E rgb(56,51,46) 4,0: ( 58, 51, 45) #3A332D rgb(58,51,45) 5,0: ( 57, 50, 45) #39322D rgb(57,50,45)
而要取某位置的颜色,则可以结合-crop操作来完成,处理命令:
- getByPixel.sh
convert rose: -crop 1x1+12+18 txt:-
输出结果:
# ImageMagick pixel enumeration: 1,1,255,rgb 0,0: (135,127,196) #877FC4 rgb(135,127,196)
这样的文本可以转换回图片。如果要刨去不需要的信息:
- getColorByPixel.sh
convert rose: -crop 1x1+12+18 txt:- | egrep -o '#[A-Z0-9]+'
输出就是
#877FC4

Discussion