通过双缓冲解决LinearGradientBrush的抗锯齿BUG

      在用LinearGradientBrush绘制由几种基础色构成的渐变色标时,每种基础色交

界处可能会出现某种颜色的线条,很影响美观与准确!上网查了下,有人说是抗锯

齿的问题???现通过下面方法解决:
    
        我将每对基础色之间的渐变色通过LinearGradientBrush绘在缓冲图片上,然后

再将每组渐变色图片拼在一起......OK,小线条不见了。
   
        示例代码如下: 

   // fillRect为需要在色标上填充渐变色的矩形

  
// linearRect为构造的用于初始化LinearGradientBrush的渐变矩形
  Rectangle linearRect  =   new  Rectangle( 0 0 , fillRect.Width, fillRect.Height);
  LinearGradientBrush gradient 
=   new  LinearGradientBrush(linearRect, startColor, endColor, LinearGradientMode.Vertical);
  
// 缓冲图片
  Bitmap offscreen  =   new  Bitmap(fillRect.Width, fillRect.Height);
  Graphics ofg 
=  Graphics.FromImage(offscreen);
  ofg.FillRectangle(gradient, linearRect);
  
// 将缓冲图片帖到色标上
  g.DrawImage(offscreen, fillRect.X, fillRect.Y);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值