C# GDI+之Graphics类 z

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

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

  一、创建Graphics类对象的的三种方法

    1.1 Paint事件

    在窗体或控件的Paint事件中创建,将其作为PaintEventArgs的一部分。在为控件创建绘制代码时,通常会使用此方法。

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

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

    1.2 CreateGraphics方法

    调用窗体或控件的CreateGraphics方法可以获取对Graphics对象的引用,该对象表示控件或窗体的绘图画面。如果在已存在的窗体或控件身上绘图,应该使用此方法

    例如,在窗体的Load事件中,通过CreateGraphics方法创建Graphics对象

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

    1.3 Graphics.FromImage方法

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

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

二、Graphics类的属性

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

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

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属性的说明

三、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方法的说明

原文地址:https://www.cnblogs.com/zeroone/p/10454530.html

时间: 2024-08-28 17:08:54

C# GDI+之Graphics类 z的相关文章

Win32中GDI+应用(三)---Graphics类

在我理解看来,Graphics是一个device context和你的drawing conetent之间的一个中介.它存储了device context的相关属性,以及drawing content的属性.这样,它就能用自己的方法把drawing content“映射”到device content 之上.GDI中的绘图工作是直接在device context之上进行的.在GDI—+中,你因该在device context之上再建立一个graphics,然后调用graphics的相关方法完成绘

Java知多少(98)Graphics类的绘图方法

Graphics类提供基本绘图方法,Graphics2D类提供更强大的绘图能力.本节讲解Graphics类,下节讲解Graphics2D. Graphics类提供基本的几何图形绘制方法,主要有:画线段.画矩形.画圆.画带颜色的图形.画椭圆.画圆弧.画多边形等. 1. 画线在窗口画一条线段,可以使用Graphics类的drawLine()方法:    drawLine(int x1,int y1,int x2,int y2)例如,以下代码在点(3,3)与点(50,50)之间画线段,在点(100,1

十一. 图形、图像与多媒体4.Graphics类的绘图方法

Graphics类提供基本绘图方法,Graphics2D类提供更强大的绘图能力.本节讲解Graphics类,下节讲解Graphics2D. Graphics类提供基本的几何图形绘制方法,主要有:画线段.画矩形.画圆.画带颜色的图形.画椭圆.画圆弧.画多边形等. 1. 画线在窗口画一条线段,可以使用Graphics类的drawLine()方法:    drawLine(int x1,int y1,int x2,int y2)例如,以下代码在点(3,3)与点(50,50)之间画线段,在点(100,1

android Graphics类:概述及基本几何图形绘制

当需要在Android上绘制图形时,就会用到Graphics类,Paint类.Paint就是相当于笔,而Canvas就是 纸,这里叫画布. 所以,凡有跟要要画的东西的设置相关的,比如大小,粗细,画笔颜色,透明度,字体的样式等等,都 是在Paint里设置:同样,凡是要画出成品的东西,比如圆形,矩形,文字等相关的都是在Canvas里生 成. 下面先说下Paint的基本设置函数: paint.setAntiAlias(true);//抗锯齿功能 paint.setColor(Color.RED); 

Graphics类中的drawLine(int x1, int y1, int x2, int y2) 方法

Graphics类中的drawLine(int x1, int y1, int x2, int y2) 方法这个方法是画一条直线,两点确定一条直线,而在坐标中由横(X).纵坐标(y)确定一个点,这四参数实际就是确定两个点,是要画的直线的起始点横纵坐标和终点的横纵坐标.X1,Y1是确定直线的起始点,即横坐标为x1,纵坐标为y1的点.同理x2,y2确定直线的终点.例A(x1,y1) B(x2,y2) 就可以画出直线AB了 原文地址:https://www.cnblogs.com/zzl1218/p/

戏说 .NET GDI+系列学习教程(三、Graphics类的方法的总结)

原文地址:https://www.cnblogs.com/WarBlog/p/11157395.html

C# Graphics类详解

Brush 类.NET Framework 4定义用于填充图形形状(如矩形.椭圆.饼形.多边形和封闭路径)的内部的对象. 属于命名空间:  System.Drawing这是一个抽象基类,不能进行实例化,若要创建一个画笔对象,使用从 Brush 派生出的类,如 SolidBrush.TextureBrush 和 LinearGradientBrush. SolidBrush 类.NET Framework 4定义单色画笔. 画笔用于填充图形形状,如矩形.椭圆.扇形.多边形和封闭路径. 此类不能被继

【转载】C# Graphics类详解

封装一个 GDI+ 绘图图面. 此类不能被继承.System.Drawing 命名空间 名称 说明 Clip  获取或设置 Region,该对象限定此 Graphics 的绘图区域. ClipBounds  获取一个 RectangleF 结构,该结构限定此 Graphics 的剪辑区域. CompositingMode  获取一个值,该值指定如何将合成图像绘制到此 Graphics. CompositingQuality  获取或设置绘制到此 Graphics 的合成图像的呈现质量. DpiX

C# winform如何清除由Graphics类绘制出来的所有线条或图形

在C#winform应用程序中,可以用GDI绘制出线条或图形. 1.在主窗体上绘制线条或图形 using (Graphics g = this.CreateGraphics())      {            g.DrawLine(Pens.Blue, new Point(10, 10), new Point(100, 100));      } 2.在指定的容器上绘制线条或图形,如在panel1上绘制 using (Graphics g = this.panel1.CreateGraph