Search code examples
ruby-on-railsrubyruby-on-rails-3ruby-on-rails-3.1rmagick

How to get average of 4 colors in Ruby?


I'm getting 4 colors off an image using RMagick using this code:

color1 = img.pixel_color(1,1)
color2 = img.pixel_color(50,1)
color3 = img.pixel_color(1,50)
color4 = img.pixel_color(50,50)

How can I compute the average of these 4 colors?


Solution

  • Something like this should work:

    colors = [color1, color2, color3, color4]
    avg = Pixel.new colors.collect(&:red).inject(:+)/colors.size,
      colors.collect(&:green).inject(:+)/colors.size,
      colors.collect(&:blue).inject(:+)/colors.size