如何绘制对角线渐变?

时间:2013-12-28 10:47:43

标签: delphi gradient

如何绘制三种颜色的对角渐变?

以下是一个例子:

il mio gradiente

1 个答案:

答案 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控件上。

它循环遍历位图的所有像素,并且对于每个位图,它计算颜色,如红色,绿色和蓝色。