以下将采用十字架来绘制字体。如图:

1.思路,先创建图案笔刷,然后再绘制图形。

代码如下:

View Code

 1    private void Form1_Paint(object sender, PaintEventArgs e)
 2         {
 3             Graphics g = e.Graphics;
 4 
 5             Font f = new Font("Aries", 60, FontStyle.Bold);
 6             HatchBrush hb = new HatchBrush(HatchStyle.Cross, Color.Blue, Color.Gray);
 7             g.DrawString("我叫王王王", f, hb, 0f, 20f);
 8             g.DrawString("我是超人", f,hb, 0f, 100f);
 9 
10         }

使用线性渐变绘制字体

代码如下:

View Code

        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            Graphics g = e.Graphics;

Font f = new Font("Aries", 60, FontStyle.Bold);
            HatchBrush hb = new HatchBrush(HatchStyle.Cross, Color.Blue, Color.Gray);
            LinearGradientBrush lb = new LinearGradientBrush(new Point(0, 0), new Point(0, 20), Color.Gray, Color.Red);
            g.DrawString("我叫王王王", f, hb, 0f, 20f);
            g.DrawString("我是超人", f, lb, 0f, 100f);

}

使用路径渐变来填充字体。如图:

思路先创建一个路径渐变笔刷,然后再绘制字体。

代码如下:

View Code

 1 private void Form1_Paint(object sender, PaintEventArgs e)
 2         {
 3             Graphics g = e.Graphics;
 4 
 5             Font f = new Font("Aries", 60, FontStyle.Bold);
 6             HatchBrush hb = new HatchBrush(HatchStyle.Cross, Color.Blue, Color.Gray);
 7             LinearGradientBrush lb = new LinearGradientBrush(new Point(0, 0), new Point(0, 20), Color.Gray, Color.Red);
 8             GraphicsPath gp = new GraphicsPath();
 9        //    gp.AddEllipse(new Rectangle(0, 0, 120, 60));
10            gp.AddLine(0, 0, 50, 0);
11            gp.AddLine(50, 00, 50, 50);
12            gp.AddLine(50, 50, 00, 50);
13             PathGradientBrush pgb = new PathGradientBrush(gp);
14             pgb.CenterColor = Color.Blue;
15             pgb.SurroundColors = new Color[] {
16             Color.White,
17             Color.Red,
18             Color.Purple
19             };
20             pgb.WrapMode = WrapMode.TileFlipXY;
21            // g.FillPath(pgb, gp);
22            // pgb.CenterPoint = new PointF(325f,325f);
23       //   g.FillPath(pgb,gp);
24             //g.FillEllipse(pgb, new Rectangle(100, 300, 250, 100));
25             g.DrawString("我叫王王王", f, hb, 0f, 20f);
26             g.DrawString("我是超人", f, lb, 0f, 100f);
27             g.DrawString("我是超人", f, pgb, 0f,200f);
28 
29         }

关于径向渐变笔刷的应用:

以下代码只是创建要填充的路径,先给出路径的本身大小图:

代码如下:

View Code

 1   //使用路径来填充矩形
 2         private void Form1_Paint(object sender, PaintEventArgs e)
 3         {
 4             Graphics g = e.Graphics;
 5             GraphicsPath gp = new GraphicsPath();
 6             gp.AddLine(0, 0, 50, 0);
 7             gp.AddLine(50, 00, 50, 50);
 8             gp.AddLine(50, 50, 00, 50);
 9             PathGradientBrush pgb = new PathGradientBrush(gp);
10             pgb.CenterColor = Color.Blue;
11             pgb.SurroundColors = new Color[] {
12             Color.White,
13             Color.Red,
14             Color.Purple
15             };
16             pgb.WrapMode = WrapMode.TileFlipXY;
17             g.FillPath(pgb, gp);
18            pgb.Dispose();
19            gp.Dispose();
20         }
21          

接着使用该路径去填充以下图形。

如果要在一个比较大范围以该路径进行填充,需要设置以下属性。来对路径进行重复的平铺设置。

1    pgb.WrapMode = WrapMode.TileFlipXY;

比如 以宽高各50的路径去填充宽200,高100的矩形,代码如下:

代码如下:

View Code

 1    //使用路径来填充矩形
 2         private void Form1_Paint(object sender, PaintEventArgs e)
 3         {
 4             Graphics g = e.Graphics;
 5             GraphicsPath gp = new GraphicsPath();
 6             gp.AddLine(0, 0, 50, 0);
 7             gp.AddLine(50, 00, 50, 50);
 8             gp.AddLine(50, 50, 00, 50);
 9             PathGradientBrush pgb = new PathGradientBrush(gp);
10             pgb.CenterColor = Color.Blue;
11             pgb.SurroundColors = new Color[] {
12             Color.White,
13             Color.Red,
14             Color.Purple
15             };
16             pgb.WrapMode = WrapMode.TileFlipXY;
17            g.FillRectangle(pgb, new Rectangle(50, 100, 250, 200));
18            pgb.Dispose();
19            gp.Dispose();
20         }

现在演使用路径绘制椭圆形,以说明使用路径渐变笔刷并不一定是绘制路径本身的图形,而是通过路径去填充其他图形。

代码如下:

View Code

 1   private void Form1_Paint(object sender, PaintEventArgs e)
 2         {
 3             Graphics g = e.Graphics;
 4             GraphicsPath gp = new GraphicsPath();
 5             gp.AddLine(0, 0, 50, 0);
 6             gp.AddLine(50, 00, 50, 50);
 7             gp.AddLine(50, 50, 00, 50);
 8             PathGradientBrush pgb = new PathGradientBrush(gp);
 9             pgb.CenterColor = Color.Blue;
10             pgb.SurroundColors = new Color[] {
11             Color.White,
12             Color.Red,
13             Color.Purple
14             };
15             pgb.WrapMode = WrapMode.TileFlipXY;
16           g.FillEllipse(pgb, new Rectangle(50, 100, 250, 200));
17            pgb.Dispose();
18            gp.Dispose();
19         }

笔刷现在有3种用途,1,用于填充图形2,通过笔刷创建的钢笔来绘制图形边框,3,通过笔刷来填充字体。

GDI+ 使用笔刷绘制字体相关推荐

  1. 在Unity中实现,使用笔刷绘制多边形

    在Unity中实现,使用笔刷绘制多边形 1. 啰嗦前言 2. 实现 1. 啰嗦前言 做毕设其中需要一个功能就是使用笔刷在地图刷绘制出河流之类的东西.如果只是绘制贴图或者顶点颜色,得到一张图片还是不难实 ...

  2. 电脑自带的画图工具怎么使用笔刷

    电脑自带的画图工具中有笔刷功能,该怎么使用这个功能涂鸦图片呢?下面我们就来看看详细的教程. 一.书法笔刷1号的方法 电脑自带的画图工具怎么使用笔刷? 1.打开软件. 电脑自带的画图工具怎么使用笔刷? ...

  3. 游戏插画、原画常用笔刷和笔刷设置,初学者赶紧收藏起来!

    游戏插画原画常用笔刷有哪些?游戏原画插画笔刷设置又是怎么样的?适合绘画初学者使用笔刷有哪些有哪些?想必这些问题都是初学者比较伤脑筋的问题,那么游戏插画.原画常用笔刷和笔刷设置是怎么样的呢?今天小编就在 ...

  4. WPF中GDI+图形图像的绘制:(一)绘制文本——动态设置字体、大小、颜色

    GDI+(Graphics Device Interface Plus图形设备接口加)是.NET框架的重要组成部分,负责在屏幕和打印机上绘制图形图像和显示信息.GDI+不但在功能上比GDI 要强大很多 ...

  5. zbrush常用笔刷_ZBrush中常用笔刷综合简介

    单击左托盘的笔刷图标,弹出一个笔刷库,其中有许多常用笔刷,这也是许多初学者所头疼的问题,ZBrush®的笔刷非常多,而且功能很强大,好多朋友不知道该选择哪一个笔刷进行雕刻.其实,在ZBrush®的学习 ...

  6. zbrush常用笔刷_如何制作精细模型,ZBrush中常用笔刷介绍

    如何制作精细模型,ZBrush中常用笔刷介绍 分享加君羊225+202+939 单击左托盘的笔刷图标,弹出一个笔刷库,其中有许多常用笔刷,这也是许多初学者所头疼的问题,zbrush#174;的笔刷非常 ...

  7. zbrush常用笔刷_Zbrush各笔刷特性

    随着版本的不断升级,ZBrush®软件给用户提供了更多的笔刷,截止4R7的更新已有一百多种的笔刷,而且功能都很强大,好多朋友不知道该选择哪一个笔刷进行雕刻.其实每一个笔刷的用途都是不同的,找到比较合适 ...

  8. zbrush常用笔刷_教您在ZBrush中制作笔刷

    ZBrush®给用户提供了许多的常用笔刷,我们可以使用这些笔刷自由地发挥创意.为了让雕刻速度更快,模型刻画更细致我们常常也会创建自定义笔刷,本文教您在ZBrush中制作笔刷. 步骤一 在Tool工具下 ...

  9. WPF中GDI+图形图像的绘制:(五)绘制图像——蒙板效果

    这里要实现的效果指的是对图片像素点区域进行颜色叠加,首先要做的是得到图片非透明部分的区域,效果如图: 实现步骤:1.在主窗体添加控制控件: <Label Grid.Row="4&quo ...

最新文章

  1. TSQL语句中的Like用法
  2. 关于学习数据库的一点总结
  3. 怎样正确处理WinForm中Listview的ItemCheck事件
  4. .project sturcture和Project Structure 无论是按快捷键或者是从files中打开都不显示
  5. object类中的equals与自定义equals方法详解
  6. 数据结构与算法 / 分治算法
  7. 高等数学-傅里叶级数与傅里叶变换
  8. python测试字符串类型的函数_python-02 数据类型 字符串str
  9. 使用thymeleaf的时候报元素类型“meta“必须由匹配的结束标记
  10. 论文笔记 - 《Deep Learning》(Yann LeCun Yoshua Bengio Geoffrey Hinton) 精典
  11. 质数——埃式筛法和欧式筛法
  12. 2013dgtcs 数字编码
  13. python车牌字符分割_OpenCV+Python识别车牌和字符分割的实现
  14. 电脑怎么找到tomcat端口_更换内存条的时候我怎么找到自己电脑配置的详细信息...
  15. arm linux内核启动过程详解
  16. 应用统计学比上比不上计算机,计算机技术在医学统计学教学中应用的思考
  17. 手机组态软件_安卓平板组态软件​_移动端组态软件介绍
  18. java电影购票系统_Java Swing实现电影购票系统项目
  19. TIM软件 docx.文件 安卓手机下载路径
  20. 计算机u盘设备无法启动不了怎么办,U盘无法弹出说正在占用怎么办?Windows无法停止设备解决方法...

热门文章

  1. linux服务器监控信息,Linux 服务器监控
  2. 防火墙阻止tftp_防火墙TFTP协议处理流程及TFTP ALG应用
  3. 一种直接估计大气延迟的网络RTK算法研究
  4. 机器学习实战 : k-近邻算法(史诗级干货长文)
  5. 阿里研究员华先胜:图像搜索的前世今生
  6. 计算cpu利用率和内存利用率
  7. mitmdump设置二次代理抓包国外软件
  8. Java项目:基于java+ssm知了堂财务报账管理系统(计算机毕业设计)
  9. 贷后回款要想好,离不开这五步工作
  10. 织梦二次开发增加一个或多个栏目的栏目内容