C# GDI+之Graphics类 z

GDI+是GDI的后继者,它是.NET Framework为操做图形提供的应用程序编程接口,主要用在窗体上绘制各类图形图像,能够用于绘制各类数据图像、数学仿真等。编程

  Graphics类是GDI+的核心,它提供将对象绘制到显式设备的方法。Graphics类封装了绘制直线、曲线、圆形、图像和文本的方法,是一切GDI+操做的基础类。在绘图以前,必须在指定的窗体上建立一个Graphics对象,才能调用Graphics类的方法画图。api

 

  1、建立Graphics类对象的的三种方法

    1.1 Paint事件

    在窗体或控件的Paint事件中建立,将其做为PaintEventArgs的一部分。在为控件建立绘制代码时,一般会使用此方法。数组

    例如,在Paint事件中建立Graphics对象:this

private void Form1_Paint(object sender, PaintEventArgs e) //窗体的Paint事件  { Graphics g = e.Graphics; //建立Graphics对象 }

 

    1.2 CreateGraphics方法

    调用窗体或控件的CreateGraphics方法能够获取对Graphics对象的引用,该对象表示控件或窗体的绘图画面。若是在已存在的窗体或控件身上绘图,应该使用此方法spa

    例如,在窗体的Load事件中,经过CreateGraphics方法建立Graphics对象code

 private void Form1_Load(object sender, EventArgs e) //窗体的Load事件  { Graphics g; //声明一个Graphics对象 g = this.CreateGraphics(); }

 

    1.3 Graphics.FromImage方法

    由从Image继承的任何对象建立Graphics对象,调用Graphics.FromImage方法便可,该方法在须要更改已存在的图像时十分有用,例:orm

private void Form1_Load(object sender, EventArgs e) { Bitmap mbit = new Bitmap(@"C:\test.bmp"); Graphics g = Graphics.FromImage(mbit); }

 

2、Graphics类的属性

Clip

获取或设置 Region,它限定此 Graphics 的绘图区域。对象

ClipBounds

获取一个 RectangleF 结构,该结构限定此 Graphics 的剪辑区域。blog

CompositingMode

获取一个值,该值指定如何将合成图像绘制到此 Graphics。继承

CompositingQuality

获取或设置绘制到此 Graphics 的合成图像的呈现质量。

DpiX

获取此 Graphics 的水平分辨率。

DpiY

获取此 Graphics 的垂直分辨率。

InterpolationMode

获取或设置与此 Graphics 关联的插补模式。

IsClipEmpty

获取一个值,该值指示此 Graphics 的剪辑区域是否为空。

IsVisibleClipEmpty

获取一个值,该值指示此 Graphics 的可见剪辑区域是否为空。

PageScale

获取或设置此 Graphics 的世界单位和页单位之间的比例。

PageUnit

获取或设置用于此 Graphics 中的页坐标的度量单位。

PixelOffsetMode

获取或设置一个值,该值指定在呈现此 Graphics 的过程当中像素如何偏移。

RenderingOrigin

为抵色处理和阴影画笔获取或设置此 Graphics 的呈现原点。

SmoothingMode

获取或设置此 Graphics 的呈现质量。

TextContrast

获取或设置呈现文本的灰度校订值。

TextRenderingHint

获取或设置与此 Graphics 关联的文本的呈现模式。

Transform

获取或设置此 Graphics 的几何世界转换的副本。

VisibleClipBounds

获取此 Graphics 的可见剪辑区域的边框。

                  注:详情参考MSDN对Graphics属性的说明

 

3、Graphics类的经常使用方法及说明

方法 描述
Clear 清除整个绘图面并以指定背景色填充
Dispose 释放由此Graphics对象使用的全部资源
DrawArc 绘制一段弧线,它表示由一对坐标、宽高指定的椭圆部分
DrawBezier 绘制由四个Point结构定义的贝塞尔样条
DrawBeziers 从Point结构的数组绘制一系列贝塞尔样条
DrawCurve 绘制通过一组指定的Point结构的基数样条
DrawEllipse 绘制一个由一对坐标、宽度和高度指定的椭圆
DrawIcon 在指定坐标处绘制由指定的Icon对象表示的图像
DrawImage 在指定的位置而且按原始大小绘制指定的Image对象
DrawLine 绘制一条链接由坐标对象指定的两个点的线条
DrawLines 绘制一列链接一组Point结构的线段
DrawPath 绘制GraphicsPath对象
DrawPie 绘制一个扇形,该扇形由一个坐标对象,宽度和高度,以及两条射线所指定的椭圆指定
DrawPolygon 绘制由一组Point结构定义的多边形
DrawRectangle 绘制由坐标对。宽度和高度指定的矩形
DrawRectangles 绘制一系列由Rectangle结构指定的矩形
DrawString 在指定位置而且用指定的Brush和Font对象绘制指定的文本字符串
FillEllipse 填充边框所定义的椭圆内部,该边框由一对坐标、一个高度和一个宽度指定
FillPath 填充GraphicsPath对象的内部
FillPie 填充扇形内部
FillPolygon 填充多边形内部
FillRectangle 填充由一对坐标、一个宽度和一个高度指定的矩形内部
FillRectangles 填充由Rectangle结构指定的一些列矩阵的内部
FillRegion 填充Region对象的内部
FromImage 从指定的Image对象建立行的Graphics对象
Save 保存此Graphics对象的当前状态,而且GraphicsState对象标识保存的状态

                  注:完整的Graphics方法请查看MSDN对Graphics方法的说明

相关文章
相关标签/搜索