May 30, 2005

[Delphi] GDI+ LinearGradientBrush (5)

ColorGradient

グラディエントの補間に色と位置を設定できる。

コードは
uses
  GDIPAPI, GDIPOBJ;

procedure TForm1.Button1Click(Sender: TObject);
const
  colors: array[0..6] of TGPColor = (aclRed,aclOrange,aclYellow,aclGreen,
                                                 aclBlue,aclIndigo,aclViolet);
var
  gr: TGPGraphics;
  lb: TGPLinearGradientBrush;
  Position: array[0..6] of Single;
  i: integer;
begin
  lb := TGPLinearGradientBrush.Create(MakePoint(20, 0), MakePoint(320, 0),
                                      aclDarkOliveGreen, aclYellow);
  for i :=0 to 6 do
  begin
    Position[i] := 1/6*i;
  end;
  lb.SetInterpolationColors(@colors[0], @Position[0], 7);

  lb.SetGammaCorrection(true);

  gr := TGPGraphics.Create(Canvas.Handle);
  gr.FillRectangle(lb, MakeRect(20, 20, 300, 50));

  gr.Free;
  lb.Free;
end;

この記事へのトラックバックURL