class Bitmap
def gradient_fill_rect(*args)
case args[0].size
when 7
x, y, width, height, color1, color2, vertical = args[0]
when 6
x, y, width, height, color1, color2, vertical = args[0] + [false]
when 4
rect, color1, color2, vertical = args[0]
when 3
rect, color1, color2 = args[0] + [false]
end
if rect != nil
x, y, width, height = rect.x, rect.y, rect.width, rect.height
end
if !vertical
for i in x..x+width
color_r = ((color1.red-color2.red)*(i-x).to_f/width + color1.red)
color_g = ((color1.green-color2.green)*(i-x).to_f/width + color1.green)
color_b = ((color1.blue-color2.blue)*(i-x).to_f/width + color1.blue)
color = Color.new(color_r, color_g, color_b)
fill_rect(i, y, 1, height, color)
end
else
for i in y..y+height
color_r = ((color1.red-color2.red)*(i-y).to_f/height + color1.red)
color_g = ((color1.green-color2.green)*(i-y).to_f/height + color1.green)
color_b = ((color1.blue-color2.blue)*(i-y).to_f/height + color1.blue)
color = Color.new(color_r, color_g, color_b)
fill_rect(x, i, width, 1, color)
end
end
end
end
class Bitmap
def gradient_fill_rect(*args)
case args[0].size
when 7
x, y, width, height, color1, color2, vertical = args[0]
when 6
x, y, width, height, color1, color2, vertical = args[0] + [false]
when 4
rect, color1, color2, vertical = args[0]
when 3
rect, color1, color2 = args[0] + [false]
end
if rect != nil
x, y, width, height = rect.x, rect.y, rect.width, rect.height
end
if !vertical
for i in x..x+width
color_r = ((color1.red-color2.red)*(i-x).to_f/width + color1.red)
color_g = ((color1.green-color2.green)*(i-x).to_f/width + color1.green)
color_b = ((color1.blue-color2.blue)*(i-x).to_f/width + color1.blue)
color = Color.new(color_r, color_g, color_b)
fill_rect(i, y, 1, height, color)
end
else
for i in y..y+height
color_r = ((color1.red-color2.red)*(i-y).to_f/height + color1.red)
color_g = ((color1.green-color2.green)*(i-y).to_f/height + color1.green)
color_b = ((color1.blue-color2.blue)*(i-y).to_f/height + color1.blue)
color = Color.new(color_r, color_g, color_b)
fill_rect(x, i, width, 1, color)
end
end
end
end