GdiPlus[18]: IGPPathGradientBrush 之 CenterColor、SurroundColors
GdiPlus[18]: IGPPathGradientBrush 之 CenterColor、SurroundColors
涂孟超 发表于3年前
GdiPlus[18]: IGPPathGradientBrush 之 CenterColor、SurroundColors
  • 发表于 3年前
  • 阅读 3
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 十分钟定制你的第一个小程序>>>   


最简单的 IGPPathGradientBrush 就是有一个中心颜色和一组周边颜色的渐变.

这里牵扯到 CenterColor、SurroundColors 属性和 SetSurroundColors 方法.

测试一效果图:



测试一代码:

//使用 SetSurroundColors 方法设置周边色组:
uses GdiPlus, GdiPlusHelpers;

procedure TForm1.FormPaint(Sender: TObject);
var
  Brush: IGPPathGradientBrush;
  Rect: TGPRect;
  Path: IGPGraphicsPath;
begin
  Rect.Initialize(10, 10, 200, 150);
  Path := TGPGraphicsPath.Create;
  Path.AddEllipse(Rect);

  Brush := TGPPathGradientBrush.Create(Path);
  Brush.CenterColor := $FF00FF00;
  Brush.SetSurroundColors([$FF000000]);

  Canvas.ToGPGraphics.FillEllipse(Brush, Rect);
end;

//使用 SurroundColors 属性设置周边色组:
uses GdiPlus, GdiPlusHelpers;

procedure TForm1.FormPaint(Sender: TObject);
var
  Brush: IGPPathGradientBrush;
  Rect: TGPRect;
  Path: IGPGraphicsPath;
  Colors: IGPColors;
begin
  Rect.Initialize(10, 10, 200, 150);
  Path := TGPGraphicsPath.Create;
  Path.AddEllipse(Rect);

  Brush := TGPPathGradientBrush.Create(Path);
  Brush.CenterColor := $FF00FF00;

  Colors := TGPArray<TGPColor>.Create(1);
  Colors[0] := $FF000000;
  Brush.SurroundColors := Colors;

  Canvas.ToGPGraphics.FillEllipse(Brush, Rect);
end;

 
 
 
 
 

 

 

  

测试二效果图:



测试二代码:

//使用 SetSurroundColors 方法设置周边色组:
uses GdiPlus, GdiPlusHelpers;

procedure TForm1.FormPaint(Sender: TObject);
var
  Brush: IGPPathGradientBrush;
  Rect: TGPRect;
  Path: IGPGraphicsPath;
begin
  Rect.Initialize(10, 10, 200, 150);
  Path := TGPGraphicsPath.Create;
  Path.AddRectangle(Rect);

  Brush := TGPPathGradientBrush.Create(Path);
  Brush.CenterColor := $FFFFFFFF;
  Brush.SetSurroundColors([$FFFF0000, $FF00FF00, $FF0000FF, $FFFFFF00]);

  Canvas.ToGPGraphics.FillRectangle(Brush, Rect);
end;

//使用 SurroundColors 属性设置周边色组:
uses GdiPlus, GdiPlusHelpers;

procedure TForm1.FormPaint(Sender: TObject);
var
  Brush: IGPPathGradientBrush;
  Rect: TGPRect;
  Path: IGPGraphicsPath;
  Colors: IGPColors;
begin
  Rect.Initialize(10, 10, 200, 150);
  Path := TGPGraphicsPath.Create;
  Path.AddRectangle(Rect);

  Brush := TGPPathGradientBrush.Create(Path);
  Brush.CenterColor := $FFFFFFFF;

  Colors := TGPArray<TGPColor>.Create(4);
  Colors[0] := $FFFF0000;
  Colors[1] := $FF00FF00;
  Colors[2] := $FF0000FF;
  Colors[3] := $FFFFFF00;
  Brush.SurroundColors := Colors;

  Canvas.ToGPGraphics.FillRectangle(Brush, Rect);
end;

 
 
 
 
 

 

 

  

共有 人打赏支持
粉丝 13
博文 2004
码字总数 14107
×
涂孟超
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: