(lazarus)使chart文字具有阴影效果

 

完成后就是这么个效果:

 

代码

uses TABGRAUtils, TADrawUtils, TADrawerCanvas, BGRABitmapTypes, TADrawerBGRA,
  BGRATextFX, BGRAGradientScanner; 
 
。。。
procedure TForm1.BGRAVirtualScreen1Redraw(Sender: TObject; Bitmap: TBGRABitmap);
var
  bmp: TBGRABitmap;
  id: IChartDrawer;
  rp: TChartRenderingParams;
  fontRenderer: TBGRATextEffectFontRenderer;
  gold: TBGRAGradientScanner;
  //olColor: TBGRAPixel;
begin
  bmp := TBGRABitmap.Create(BGRAVirtualScreen1.Width, BGRAVirtualScreen1.Height);

  fontRenderer:= TBGRATextEffectFontRenderer.Create;
  fontRenderer.ShadowVisible := true;     //adds a shadow
  // 字体外边颜色
  //olColor.red :=   $FFFFFFFF;
  //olColor.green := $000000FF;
  //olColor.blue :=  $000000FF;
  //olColor.alpha:=  $FFFFFFFF;

  //fontRenderer.OutlineColor := olColor;
  fontRenderer.OutlineVisible := false;    //show the outline
  gold := TBGRAGradientScanner.Create(CSSGold,CSSGoldenrod,gtLinear,PointF(0,0),PointF(20,20),true,true);
  fontRenderer.OutlineTexture := gold;    //define the texture used for the outline
  fontRenderer.OuterOutlineOnly := true;  //just the outer pixels of the text
  bmp.FontRenderer := fontRenderer;       //gives the FontRenderer to the image (which becomes the owner of the renderer)

  Chart1.DisableRedrawing;
  try
    id := TBGRABitmapDrawer.Create(bmp);
    id.DoGetFontOrientation := @CanvasGetFontOrientationFunc;
    rp := Chart1.RenderingParams;
    Chart1.Draw(id, Rect(0, 0, BGRAVirtualScreen1.Width, BGRAVirtualScreen1.Height));
    Chart1.RenderingParams := rp;
    Bitmap.PutImage(0,0,bmp,dmDrawWithTransparency);

  finally
    Chart1.EnableRedrawing;
    bmp.Free;
    gold.Free;
  end;

end;  


 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值