欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

再学 GDI+[68]: 路径画刷(8) - SetBlendTriangularShaped、SetBlendBellShape

发布时间:2025/4/5 编程问答 48 豆豆
生活随笔 收集整理的这篇文章主要介绍了 再学 GDI+[68]: 路径画刷(8) - SetBlendTriangularShaped、SetBlendBellShape 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
本例效果图(颜色失真严重, 因为 GIF 最多只能接受 256 中颜色):



代码文件:
unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, ComCtrls, StdCtrls, ExtCtrls;typeTForm1 = class(TForm)TrackBar1: TTrackBar;TrackBar2: TTrackBar;RadioGroup1: TRadioGroup;procedure FormCreate(Sender: TObject);procedure FormPaint(Sender: TObject);procedure RadioGroup1Click(Sender: TObject);procedure TrackBar1Change(Sender: TObject);procedure TrackBar2Change(Sender: TObject);end;varForm1: TForm1;implementation{$R *.dfm}uses GDIPOBJ, GDIPAPI;procedure TForm1.FormCreate(Sender: TObject); beginTrackBar1.Max := 100;TrackBar2.Max := 100;TrackBar1.Position := TrackBar1.Max;TrackBar2.Position := TrackBar2.Max;TrackBar1.ShowSelRange := False;TrackBar2.ShowSelRange := False;TrackBar1.Height := 23;TrackBar2.Height := 23;RadioGroup1.Items.CommaText := 'BlendTriangularShape, SetBlendBellShape';RadioGroup1.ItemIndex := 0;DoubleBuffered := True; end;procedure TForm1.FormPaint(Sender: TObject); constcolors: array[0..0] of TGPColor = (aclRed); varg: TGPGraphics;path: TGPGraphicsPath;pb: TGPPathGradientBrush;num: Integer; beging := TGPGraphics.Create(Canvas.Handle);path := TGPGraphicsPath.Create;path.AddRectangle(MakeRect(30,10,160,150));pb:= TGPPathGradientBrush.Create(path);num := Length(colors);pb.SetSurroundColors(@colors, num);pb.SetCenterColor(aclYellow);{SetBlendTriangularShape 与 SetBlendBellShape 参数2的默认值都是 1.0}case RadioGroup1.ItemIndex of0: pb.SetBlendTriangularShape(TrackBar1.Position/100, TrackBar2.Position/100);1: pb.SetBlendBellShape(TrackBar1.Position/100, TrackBar2.Position/100);end;g.FillPath(pb, path);pb.Free;path.Free;g.Free; end;procedure TForm1.RadioGroup1Click(Sender: TObject); beginRepaint; end;procedure TForm1.TrackBar1Change(Sender: TObject); beginRepaint; end;procedure TForm1.TrackBar2Change(Sender: TObject); beginRepaint; end;end. 窗体文件:
object Form1: TForm1Left = 0Top = 0Caption = 'Form1'ClientHeight = 261ClientWidth = 221Color = clBtnFaceFont.Charset = DEFAULT_CHARSETFont.Color = clWindowTextFont.Height = -11Font.Name = 'Tahoma'Font.Style = []OldCreateOrder = FalsePosition = poDesktopCenterOnCreate = FormCreateOnPaint = FormPaintPixelsPerInch = 96TextHeight = 13object TrackBar1: TTrackBarLeft = 0Top = 167Width = 113Height = 45TabOrder = 0OnChange = TrackBar1Changeendobject TrackBar2: TTrackBarLeft = 108Top = 167Width = 113Height = 45TabOrder = 1OnChange = TrackBar2Changeendobject RadioGroup1: TRadioGroupLeft = 8Top = 192Width = 206Height = 61Caption = 'RadioGroup1'TabOrder = 2OnClick = RadioGroup1Clickend end

总结

以上是生活随笔为你收集整理的再学 GDI+[68]: 路径画刷(8) - SetBlendTriangularShaped、SetBlendBellShape的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。