如何绘制三种颜色的对角渐变?
以下是一个例子:
答案 0 :(得分:6)
好的,在表单上放一个TPaintbox,然后添加这个OnPaint处理程序:
procedure TForm53.PaintBox1Paint(Sender: TObject);
var
bmp : TBitmap;
x,y : integer;
r,g,b: byte;
begin
bmp := TBitmap.Create;
try
bmp.SetSize(256, 256);
for y := 0 to bmp.Height - 1 do
for x := 0 to bmp.Width - 1 do
begin
r := 0;
g := round(256 * max(0, y - x) / PaintBox1.Height);
b := round(256 * max(0, x - y) / PaintBox1.Width);
bmp.Canvas.Pixels[x, y] := RGB(r, g, b);
end;
PaintBox1.Canvas.StretchDraw(PaintBox1.ClientRect, bmp);
finally
bmp.Free;
end;
end;
这应该看起来像你的榜样。
说明: 它生成一个256x256的屏幕外位图来绘制。 完成后,它会被绘制到您的paintbox控件上。
它循环遍历位图的所有像素,并且对于每个位图,它计算颜色,如红色,绿色和蓝色。