0

我得到4种颜色关闭使用RMagick使用该代码的图像:如何在Ruby中获得4种颜色的平均值?

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

我怎样才能计算这些4种颜色的平均?

回答

3

像这样的东西应该工作:

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 
+1

HSV或HSL可能会是一个更好的坐标系统比RGB为这样的事情。 – 2011-12-23 04:59:18