我使用imagemagick来提取jpeg图像中的像素颜色@某个x,y坐标。
大多数情况下输出是srgb(R,G,B),但在某些情况下它返回grey##。
因为我需要简单的RGB数字来计算,所以grey##不是一个很好的值。
是否有可能总是从imagemagick获得RGB值?
命令:
magick image.jpg -format "%[pixel:p{110,246}]" info:-
发布于 2020-05-27 21:55:50
您想要做的是在ImageMagick fx:计算中分别计算每个颜色通道。
magick image.jpg[1x1+110+245] -format "%[fx:round(255*u.r)],%[fx:round(255*u.g)],%[fx:round(255*u.b)]" info:例如,它将产生:

magick lena.jpg[1x1+110+245] -format "%[fx:round(255*u.r)],%[fx:round(255*u.g)],%[fx:round(255*u.b)]" info:208,90,88
如果您想包含rgb(),那么请执行
magick image.jpg[1x1+110+245] -format "rgb(%[fx:round(255*u.r)],%[fx:round(255*u.g)],%[fx:round(255*u.b)])" info:magick lena.jpg[1x1+110+245] -format "rgb(%[fx:round(255*u.r)],%[fx:round(255*u.g)],%[fx:round(255*u.b)])" info:rgb(208,90,88)
增添:
如果希望返回多个像素,则可以执行以下操作:
magick lena.jpg -format "rgb(%[fx:round(255*u.p{10,10}.r)],%[fx:round(255*u.p{10,10}.g)],%[fx:round(255*u.p{10,10}.b)]) rgb(%[fx:round(255*u.p{100,100}.r)],%[fx:round(255*u.p{100,100}.g)],%[fx:round(255*u.p{100,100}.b)])\n" info:(226,130,106) rgb(131,46,85)
https://stackoverflow.com/questions/62053408
复制相似问题