zoukankan      html  css  js  c++  java
  • GdiPlus[18]: IGPPathGradientBrush 之 CenterColor、SurroundColors


    最简单的 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;
    

  • 相关阅读:
    使用Redux管理你的React应用(转载)
    基于webpack使用ES6新特性(转载)
    在SublimeText上搭建ReactJS开发环境(转载)
    Javascript 严格模式详解
    HTML5探秘:用requestAnimationFrame优化Web动画
    requestAnimationFrame,Web中写动画的另一种选择
    Gulp自动添加版本号(转载)
    一小时包教会 —— webpack 入门指南
    React 入门实例教程(转载)
    走向视网膜(Retina)的Web时代
  • 原文地址:https://www.cnblogs.com/del/p/1624591.html
Copyright © 2011-2022 走看看