GDI+

11 篇文章 0 订阅

【概念】

        GDI+是Graphics Device Interface Plus的缩写,称为图像设备接口,作用就是负责系统与绘图程序之间的信息交换,处理所有的Windows程序的图形输出。说到这你是否明白一点了那,通俗的讲,平常经常用的windows操作系统下,具备图形界面的应用程序都用到了GDI+,就比如编程用到的Visual Studio中就用到了GDI+,当你新建一个类型为Windows窗体应用程序的项目时,会出现一个窗体,该窗体就是利用GDI+提供的众多函数画出来的,所以在代码窗体的命名空间里有Using System.Drawing.

【内容】

要想画图,必须具备的工具有笔,画板,画画的主体(生活中通常就是人)

          

一:坐标Point

1.画图时首先要考虑在哪画,即要有一个坐标系。GDI+的坐标是往右往下递增,而平常的二维坐标是往右往上递增。坐标是一个有序对

2.结构体

  Point pt=new Point(10,10);     //即定义一个点

二:画笔Pen

1.作用:主要指定画笔的颜色和宽度

2.创建画笔:

   Pen p=new Pen(color.blue,3);   //即创建一个蓝色的画笔,像素为3,如果不指定像素,默认为1

3.作用:画一个图形的轮廓

三:Graphics类

1.采用面向对象的封装机制,提供将对象(图形或文本)绘制到设备上(打印机、屏幕等),这些对象对立与Graphics对象,是它方法的参数

2.创建Graphics对象方法

  如果是从已创建的窗体或控件上画,可以用Graphics g=this.CreatGraphics();

  否则(比如要在一个图像上画,),可用Graphics g=Graphics.FromImage(bm);  //bm即画的载体的名称(要在哪画)

  如果在Paint的事件中创建,可用PaintEventArgs事件,Graphics g=e.Graphics;

3.常用方法

  画图:g.DrawLine();

  画文本:g.DrawStrign();

  填充图形:g.FillRectangle();注意,填充时是在相对坐标的(0,0)处开始的,所以会把图形的左上边覆盖

四:Rectangle和RectangleF区别

        其实和size和sizeF,Point和PointF的区别相同,就是它们各自的结构体代表浮点数类型(其中的属性可以写成int类型,float类型的数要在数值后面加f,否则默认为Double类型给你,此时会报错),那么问题来了,在画图时,没有DrawRecTangleF()方法,还是要把RecTangleF转换成RecTangle,转换方法有如下两种:

1.Rount:讲Float舍入到最近的整数值

            SizeF size = new SizeF(100, 150); //矩形的大小
            RectangleF rec = new RectangleF(new PointF(20.3f, 20.9f), size);
            Rectangle re = Rectangle.Round(rec);

2.TrunCate:阶段RecTangleF值,即float值

            SizeF size = new SizeF(100, 150); //矩形的大小
            RectangleF rec = new RectangleF(new PointF(20.3f, 20.9f), size);
            Rectangle re = Rectangle.Truncate(rec);

五:brush画刷

1.作用:用来填充闭合图形的颜色

2.类型:brush和solidbrush(实心画刷)

3.区别:创建一个实行画刷需要实例化:SolidBrush b = new SolidBrush(Color.Red);而brushs类不需要实     例化

六:paint重画

      当在窗体中画完一个图形首,使窗体最下话后,发现原来画的图形没有了,如果图形是在Form的paint事件中画的,就不会出现这种情况。

【总结】

        GDI+提供的方法可以方便程序员在屏幕、打印机及其它输出设备上输出图形,文本等操作,程序员无需关心硬件设备及设备驱动,就可以应用程序的输出转化为硬件设备的输出,实现了程序开发者与硬件设备的隔离,方便了开发工作。



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 16
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值