Calculate the average colour of an area in an image

后端 未结 3 667
面向向阳花
面向向阳花 2021-02-04 12:56

The goal is to lay a caption on top of an image and set the text colour to one that will contrast with the background it is positioned on top of. To that end, I wish to calculat

相关标签:
3条回答
  • 2021-02-04 13:26

    Expanding on Bonzo’s answer. This is an example command

    convert Y82IirS.jpg -resize 1x1 txt:
    

    Result

    # ImageMagick pixel enumeration: 1,1,255,srgb
    0,0: (220,176, 44)  #DCB02C  srgb(220,176,44)
    

    Average colour of an image

    0 讨论(0)
  • 2021-02-04 13:36

    Here is a command that handles both cropping and color detection, and also produces output in a consistent R,G,B format:

     convert image.gif -crop 6x7+8+9 -resize 1x1\! -format "%[fx:int(255*r+.5)],%[fx:int(255*g+.5)],%[fx:int(255*b+.5)]" info:-
    

    where, in 6x7+8+9 :

     6: image width (pixels)
     7: image height (pixels)
     8: x-coordinate of top left corner
     9: y-coordinate of top left corner
    

    Returns

     176,191,67
    

    Adapted from https://stackoverflow.com/a/25488429/3124680

    0 讨论(0)
  • 2021-02-04 13:46

    I would crop to the area you are interested in then resize it to 1 pixel. Then get the value of that pixel.

    0 讨论(0)
提交回复
热议问题