C# 第九章『图形、图像』◆第1节:GDI+概述、Graphics类

        GDI+是GDI的后继者,它为操作图形提供的应用程序编程接口(API)。使用GDI+可以用相同的方式在屏幕或打印机上显示信息,而无需考虑特定显示设备的细节。

        GDI+主要提供以下三类服务:

  • 二维矢量图形:GDI+提供了存储图形基元自身信息的类(或结构体)、存储图形基元绘制方式信息的类以及实际进行绘制的类。
  • 图像处理:大多数图片都难以划定为直线和曲线的集合,无法使用二维矢量图形方式进行处理。因此GDI+提供了Bitmap、Image等类,它们可以显示、操作和保存图像。
  • 文字显示:GDI+支持使用各种字体、字号和样式来显示文本。

        一、坐标系

        坐标系是图形设计的基础,GDI+使用3个坐标空间:世界坐标系、页面坐标系和设备坐标系。

  • 世界坐标是用于建立特殊图像世界模型的坐标系,也是传递给方法的坐标系;
  • 页面坐标系是指绘图图面(如窗体或控件)使用的坐标系;
  • 设备坐标系是在其上进行绘制的物理设备(如屏幕或纸张)所使用的坐标系。

        二、像素

        像素(图像元素),它是构成图像的基本单位,通常以像素每英寸PPI为单位来表示图像分辨率的大小。

        一个像素所能表达的不同颜色数取决于比特每像素(bpp),这个最大数可以通过取2的色彩深度次幂获得。

像素位数 颜色值
8 bpp 256色
16 bpp 65536色
24 bpp (2的24次方)色(24位真彩色)
48 bpp (2的48次方)色(48位真彩色)

        三、Graphics 类

        1、定义

        封装一个 GDI+ 绘图图面。 此类不能被继承。Graphics 类是GDI+的核心,Graphics对象表示GDI+绘图表面,提供将对象绘制到显示设备的方法。Graphics对象与特定的设备上、下向关联,是用于创建图形图像的对象。Graphics 类封装了绘制直线、曲线、图形、图像和文本的方法,是进行一切GDI+操作的基础类。

  • 命名空间:System.Drawing
  • 程序集:System.Drawing.dll
  • 继承:Object→MarshalByRefObject→Graphics
  • 实现:IDeviceContext,IDisposable
public sealed class Graphics : MarshalByRefObject, IDisposable, System.Drawing.IDeviceContext

        2、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 的可见剪辑区域的边框。

        3、Graphics 类的方法

AddMetafileComment(Byte[]) 向当前 Metafile 添加注释。
BeginContainer() 保存具有此 Graphics 的当前状态的图形容器,然后打开并使用新的图形容器。
BeginContainer(Rectangle, Rectangle, GraphicsUnit) 保存具有此 Graphics 的当前状态的图形容器,然后打开并使用具有指定缩放变形的新图形容器。
BeginContainer(RectangleF, RectangleF, GraphicsUnit) 保存具有此 Graphics 的当前状态的图形容器,然后打开并使用具有指定缩放变形的新图形容器。
Clear(Color) 清除整个绘图面并以指定背景色填充。
CopyFromScreen(Int32, Int32, Int32, Int32, Size) 执行颜色数据(对应于由像素组成的矩形)从屏幕到 Graphics 的绘图图面的位块传输。
CopyFromScreen(Int32, Int32, Int32, Int32, Size, CopyPixelOperation) 执行颜色数据(对应于由像素组成的矩形)从屏幕到 Graphics 的绘图图面的位块传输。
CopyFromScreen(Point, Point, Size) 执行颜色数据(对应于由像素组成的矩形)从屏幕到 Graphics 的绘图图面的位块传输。
CopyFromScreen(Point, Point, Size, CopyPixelOperation) 执行颜色数据(对应于由像素组成的矩形)从屏幕到 Graphics 的绘图图面的位块传输。
CreateObjRef(Type) 创建一个对象,该对象包含生成用于与远程对象进行通信的代理所需的全部相关信息。(继承自 MarshalByRefObject)
Dispose() 释放此 Graphics 使用的所有资源。
DrawArc(Pen, Int32, Int32, Int32, Int32, Int32, Int32) 绘制一段弧线,它表示由一对坐标、宽度和高度指定的椭圆部分。
DrawArc(Pen, Rectangle, Single, Single) 绘制一段弧线,它表示 Rectangle 结构指定的椭圆的一部分。
DrawArc(Pen, RectangleF, Single, Single) 绘制一段弧线,它表示 RectangleF 结构指定的椭圆的一部分。
DrawArc(Pen, Single, Single, Single, Single, Single, Single) 绘制一段弧线,它表示由一对坐标、宽度和高度指定的椭圆部分。
DrawBezier(Pen, Point, Point, Point, Point) 绘制由 4 个 Point 结构定义的贝塞尔样条。
DrawBezier(Pen, PointF, PointF, PointF, PointF) 绘制由 4 个 PointF 结构定义的贝塞尔样条。
DrawBezier(Pen, Single, Single, Single, Single, Single, Single, Single, Single) 绘制由四个表示点的有序坐标对定义的贝塞尔样条。
DrawBeziers(Pen, Point[]) 用 Point 结构数组绘制一系列贝塞尔样条。
DrawBeziers(Pen, PointF[]) 用 PointF 结构数组绘制一系列贝塞尔样条。
DrawClosedCurve(Pen, Point[]) 绘制由 Point 结构的数组定义的闭合基数样条。
DrawClosedCurve(Pen, Point[], Single, FillMode) 使用指定的张力绘制由 Point 结构数组定义的闭合基数样条。
DrawClosedCurve(Pen, PointF[]) 绘制由 PointF 结构的数组定义的闭合基数样条。
DrawClosedCurve(Pen, PointF[], Single, FillMode) 使用指定的张力绘制由 PointF 结构数组定义的闭合基数样条。
DrawCurve(Pen, Point[]) 绘制经过一组指定的 Point 结构的基数样条。
DrawCurve(Pen, Point[], Int32, Int32, Single) 使用指定的张力绘制经过一组指定的 Point 结构的基数样条。
DrawCurve(Pen, Point[], Single) 使用指定的张力绘制经过一组指定的 Point 结构的基数样条。
DrawCurve(Pen, PointF[]) 绘制经过一组指定的 PointF 结构的基数样条。
DrawCurve(Pen, PointF[], Int32, Int32) 绘制经过一组指定的 PointF 结构的基数样条。 从相对于数组开始位置的偏移量开始绘制。
DrawCurve(Pen, PointF[], Int32, Int32, Single) 使用指定的张力绘制经过一组指定的 PointF 结构的基数样条。 从相对于数组开始位置的偏移量开始绘制。
DrawCurve(Pen, PointF[], Single) 使用指定的张力绘制经过一组指定的 PointF 结构的基数样条。
DrawEllipse(Pen, Int32, Int32, Int32, Int32) 绘制一个由边框定义的椭圆,该边框由矩形的左上角坐标、高度和宽度指定。
DrawEllipse(Pen, Rectangle) 绘制边界 Rectangle 结构指定的椭圆。
DrawEllipse(Pen, RectangleF) 绘制边界 RectangleF 定义的椭圆。
DrawEllipse(Pen, Single, Single, Single, Single) 绘制一个由边框(该边框由一对坐标、高度和宽度指定)定义的椭圆。
DrawIcon(Icon, Int32, Int32) 在指定坐标处绘制由指定的 Icon 表示的图像。
DrawIcon(Icon, Rectangle) 在 Icon 结构指定的区域内绘制指定的 Rectangle 表示的图像。
DrawIconUnstretched(Icon, Rectangle) 绘制指定的 Icon 表示的图像,而不缩放该图像。
DrawImage(Image, Int32, Int32) 在由坐标对指定的位置,使用图像的原始物理大小绘制指定的图像。
DrawImage(Image, Int32, Int32, Int32, Int32) 在指定位置并且按指定大小绘制指定的 Image。
DrawImage(Image, Int32, Int32, Rectangle, GraphicsUnit) 在指定的位置绘制图像的一部分。
DrawImage(Image, Point) 在指定的位置使用原始物理大小绘制指定的 Image。
DrawImage(Image, Point[]) 在指定位置并且按指定形状和大小绘制指定的 Image。
DrawImage(Image, Point[], Rectangle, GraphicsUnit) 在指定位置并且按指定大小绘制指定的 Image 的指定部分。
DrawImage(Image, Point[], Rectangle, GraphicsUnit, ImageAttributes) 在指定位置绘制指定的 Image 的指定部分。
DrawImage(Image, Point[], Rectangle, GraphicsUnit, ImageAttributes, Graphics+DrawImageAbort) 在指定位置并且按指定大小绘制指定的 Image 的指定部分。
DrawImage(Image, Point[], Rectangle, GraphicsUnit, ImageAttributes, Graphics+DrawImageAbort, Int32) 在指定位置并且按指定大小绘制指定的 Image 的指定部分。
DrawImage(Image, PointF) 在指定的位置使用原始物理大小绘制指定的 Image。
DrawImage(Image, PointF[]) 在指定位置并且按指定形状和大小绘制指定的 Image。
DrawImage(Image, PointF[], RectangleF, GraphicsUnit) 在指定位置并且按指定大小绘制指定的 Image 的指定部分。
DrawImage(Image, PointF[], RectangleF, GraphicsUnit, ImageAttributes) 在指定位置并且按指定大小绘制指定的 Image 的指定部分。
DrawImage(Image, PointF[], RectangleF, GraphicsUnit, ImageAttributes, Graphics+DrawImageAbort) 在指定位置并且按指定大小绘制指定的 Image 的指定部分。
DrawImage(Image, PointF[], RectangleF, GraphicsUnit, ImageAttributes, Graphics+DrawImageAbort, Int32) 在指定位置并且按指定大小绘制指定的 Image 的指定部分。
DrawImage(Image, Rectangle) 在指定位置并且按指定大小绘制指定的 Image。
DrawImage(Image, Rectangle, Int32, Int32, Int32, Int32, GraphicsUnit) 在指定位置并且按指定大小绘制指定的 Image 的指定部分。
DrawImage(Image, Rectangle, Int32, Int32, Int32, Int32, GraphicsUnit, ImageAttributes) 在指定位置并且按指定大小绘制指定的 Image 的指定部分。
DrawImage(Image, Rectangle, Int32, Int32, Int32, Int32, GraphicsUnit, ImageAttributes, Graphics+DrawImageAbort) 在指定位置并且按指定大小绘制指定的 Image 的指定部分。
DrawImage(Image, Rectangle, Int32, Int32, Int32, Int32, GraphicsUnit, ImageAttributes, Graphics+DrawImageAbort, IntPtr) 在指定位置并且按指定大小绘制指定的 Image 的指定部分。
DrawImage(Image, Rectangle, Rectangle, GraphicsUnit) 在指定位置并且按指定大小绘制指定的 Image 的指定部分。
DrawImage(Image, Rectangle, Single, Single, Single, Single, GraphicsUnit) 在指定位置并且按指定大小绘制指定的 Image 的指定部分。
DrawImage(Image, Rectangle, Single, Single, Single, Single, GraphicsUnit, ImageAttributes) 在指定位置并且按指定大小绘制指定的 Image 的指定部分。
DrawImage(Image, Rectangle, Single, Single, Single, Single, GraphicsUnit, ImageAttributes, Graphics+DrawImageAbort) 在指定位置并且按指定大小绘制指定的 Image 的指定部分。
DrawImage(Image, Rectangle, Single, Single, Single, Single, GraphicsUnit, ImageAttributes, Graphics+DrawImageAbort, IntPtr) 在指定位置并且按指定大小绘制指定的 Image 的指定部分。
DrawImage(Image, RectangleF) 在指定位置并且按指定大小绘制指定的 Image。
DrawImage(Image, RectangleF, RectangleF, GraphicsUnit) 在指定位置并且按指定大小绘制指定的 Image 的指定部分。
DrawImage(Image, Single, Single) 在指定的位置使用原始物理大小绘制指定的 Image。
DrawImage(Image, Single, Single, RectangleF, GraphicsUnit) 在指定的位置绘制图像的一部分。
DrawImage(Image, Single, Single, Single, Single) 在指定位置并且按指定大小绘制指定的 Image。
DrawImageUnscaled(Image, Int32, Int32) 在由坐标对指定的位置,使用图像的原始物理大小绘制指定的图像。
DrawImageUnscaled(Image, Int32, Int32, Int32, Int32) 在指定的位置使用图像的原始物理大小绘制指定的图像。
DrawImageUnscaled(Image, Point) 在指定的位置使用图像的原始物理大小绘制指定的图像。
DrawImageUnscaled(Image, Rectangle) 在指定的位置使用图像的原始物理大小绘制指定的图像。
DrawImageUnscaledAndClipped(Image, Rectangle) 在不进行缩放的情况下绘制指定的图像,并在需要时剪辑该图像以适合指定的矩形。
DrawLine(Pen, Int32, Int32, Int32, Int32) 绘制一条连接由坐标对指定的两个点的线条。
DrawLine(Pen, Point, Point) 绘制一条连接两个 Point 结构的线。
DrawLine(Pen, PointF, PointF) 绘制一条连接两个 PointF 结构的线。
DrawLine(Pen, Single, Single, Single, Single) 绘制一条连接由坐标对指定的两个点的线条。
DrawLines(Pen, Point[]) 绘制一系列连接一组 Point 结构的线段。
DrawLines(Pen, PointF[]) 绘制一系列连接一组 PointF 结构的线段。
DrawPath(Pen, GraphicsPath) 绘制 GraphicsPath。
DrawPie(Pen, Int32, Int32, Int32, Int32, Int32, Int32) 绘制一个扇形,该形状由一个坐标对、宽度、高度以及两条射线所指定的椭圆定义。
DrawPie(Pen, Rectangle, Single, Single) 绘制由一个 Rectangle 结构和两条射线所指定的椭圆定义的扇形。
DrawPie(Pen, RectangleF, Single, Single) 绘制由一个 RectangleF 结构和两条射线所指定的椭圆定义的扇形。
DrawPie(Pen, Single, Single, Single, Single, Single, Single) 绘制一个扇形,该形状由一个坐标对、宽度、高度以及两条射线所指定的椭圆定义。
DrawPolygon(Pen, Point[]) 绘制由一组 Point 结构定义的多边形。
DrawPolygon(Pen, PointF[]) 绘制由一组 PointF 结构定义的多边形。
DrawRectangle(Pen, Int32, Int32, Int32, Int32) 绘制由坐标对、宽度和高度指定的矩形。
DrawRectangle(Pen, Rectangle) 绘制由 Rectangle 结构指定的矩形。
DrawRectangle(Pen, Single, Single, Single, Single) 绘制由坐标对、宽度和高度指定的矩形。
DrawRectangles(Pen, Rectangle[]) 绘制一系列由 Rectangle 结构指定的矩形。
DrawRectangles(Pen, RectangleF[]) 绘制一系列由 RectangleF 结构指定的矩形。
DrawString(String, Font, Brush, PointF) 在指定位置并且用指定的 Brush 和 Font 对象绘制指定的文本字符串。
DrawString(String, Font, Brush, PointF, StringFormat) 使用指定 Brush 的格式化特性,用指定的 Font 和 StringFormat 对象在指定的位置绘制指定的文本字符串。
DrawString(String, Font, Brush, RectangleF) 在指定矩形并且用指定的 Brush 和 Font 对象绘制指定的文本字符串。
DrawString(String, Font, Brush, RectangleF, StringFormat) 使用指定 Brush 的格式化特性,用指定的 Font 和 StringFormat 对象在指定的矩形中绘制指定的文本字符串。
DrawString(String, Font, Brush, Single, Single) 在指定位置并且用指定的 Brush 和 Font 对象绘制指定的文本字符串。
DrawString(String, Font, Brush, Single, Single, StringFormat) 使用指定 Brush 的格式化特性,用指定的 Font 和 StringFormat 对象在指定的位置绘制指定的文本字符串。
EndContainer(GraphicsContainer) 关闭当前图形容器,并将此 Graphics 的状态还原到通过调用 BeginContainer() 方法保存的状态。
EnumerateMetafile(Metafile, Point, Graphics+EnumerateMetafileProc) 将指定 Metafile 中的记录逐个发送到回调方法以在指定的点处显示。
EnumerateMetafile(Metafile, Point, Graphics+EnumerateMetafileProc, IntPtr) 将指定 Metafile 中的记录逐个发送到回调方法以在指定的点处显示。
EnumerateMetafile(Metafile, Point, Graphics+EnumerateMetafileProc, IntPtr, ImageAttributes) 将指定 Metafile 中的记录逐个发送到回调方法,以在指定的点处用指定的图像特性显示。
EnumerateMetafile(Metafile, Point, Rectangle, GraphicsUnit, Graphics+EnumerateMetafileProc) 将 Metafile 中选定矩形内的记录逐个发送到回调方法以在指定的点处显示。
EnumerateMetafile(Metafile, Point, Rectangle, GraphicsUnit, Graphics+EnumerateMetafileProc, IntPtr) 将 Metafile 中选定矩形内的记录逐个发送到回调方法以在指定的点处显示。
EnumerateMetafile(Metafile, Point, Rectangle, GraphicsUnit, Graphics+EnumerateMetafileProc, IntPtr, ImageAttributes) 将 Metafile 中选定矩形内的记录逐个发送到回调方法,以在指定的点处用指定的图像特性显示。
EnumerateMetafile(Metafile, Point[], Graphics+EnumerateMetafileProc) 将指定 Metafile 中的记录逐个发送到回调方法以在指定的平行四边形中显示。
EnumerateMetafile(Metafile, Point[], Graphics+EnumerateMetafileProc, IntPtr) 将指定 Metafile 中的记录逐个发送到回调方法以在指定的平行四边形中显示。
EnumerateMetafile(Metafile, Point[], Graphics+EnumerateMetafileProc, IntPtr, ImageAttributes) 将指定 Metafile 中的记录逐个发送到回调方法,以在指定的平行四边形中用指定的图像特性显示。
EnumerateMetafile(Metafile, Point[], Rectangle, GraphicsUnit, Graphics+EnumerateMetafileProc) 将 Metafile 中选定矩形内的记录逐个发送到回调方法以在指定的平行四边形中显示。
EnumerateMetafile(Metafile, Point[], Rectangle, GraphicsUnit, Graphics+EnumerateMetafileProc, IntPtr) 将 Metafile 中选定矩形内的记录逐个发送到回调方法以在指定的平行四边形中显示。
EnumerateMetafile(Metafile, Point[], Rectangle, GraphicsUnit, Graphics+EnumerateMetafileProc, IntPtr, ImageAttributes) 将 Metafile 中选定矩形内的记录逐个发送到回调方法,以在指定的平行四边形中用指定的图像特性显示。
EnumerateMetafile(Metafile, PointF, Graphics+EnumerateMetafileProc) 将指定 Metafile 中的记录逐个发送到回调方法以在指定的点处显示。
EnumerateMetafile(Metafile, PointF, Graphics+EnumerateMetafileProc, IntPtr) 将指定 Metafile 中的记录逐个发送到回调方法以在指定的点处显示。
EnumerateMetafile(Metafile, PointF, Graphics+EnumerateMetafileProc, IntPtr, ImageAttributes) 将指定 Metafile 中的记录逐个发送到回调方法,以在指定的点处用指定的图像特性显示。
EnumerateMetafile(Metafile, PointF, RectangleF, GraphicsUnit, Graphics+EnumerateMetafileProc) 将 Metafile 中选定矩形内的记录逐个发送到回调方法以在指定的点处显示。
EnumerateMetafile(Metafile, PointF, RectangleF, GraphicsUnit, Graphics+EnumerateMetafileProc, IntPtr) 将 Metafile 中选定矩形内的记录逐个发送到回调方法以在指定的点处显示。
EnumerateMetafile(Metafile, PointF, RectangleF, GraphicsUnit, Graphics+EnumerateMetafileProc, IntPtr, ImageAttributes) 将 Metafile 中选定矩形内的记录逐个发送到回调方法,以在指定的点处用指定的图像特性显示。
EnumerateMetafile(Metafile, PointF[], Graphics+EnumerateMetafileProc) 将指定 Metafile 中的记录逐个发送到回调方法以在指定的平行四边形中显示。
EnumerateMetafile(Metafile, PointF[], Graphics+EnumerateMetafileProc, IntPtr) 将指定 Metafile 中的记录逐个发送到回调方法以在指定的平行四边形中显示。
EnumerateMetafile(Metafile, PointF[], Graphics+EnumerateMetafileProc, IntPtr, ImageAttributes) 将指定 Metafile 中的记录逐个发送到回调方法,以在指定的平行四边形中用指定的图像特性显示。
EnumerateMetafile(Metafile, PointF[], RectangleF, GraphicsUnit, Graphics+EnumerateMetafileProc) 将 Metafile 中选定矩形内的记录逐个发送到回调方法以在指定的平行四边形中显示。
EnumerateMetafile(Metafile, PointF[], RectangleF, GraphicsUnit, Graphics+EnumerateMetafileProc, IntPtr) 将 Metafile 中选定矩形内的记录逐个发送到回调方法以在指定的平行四边形中显示。
EnumerateMetafile(Metafile, PointF[], RectangleF, GraphicsUnit, Graphics+EnumerateMetafileProc, IntPtr, ImageAttributes) 将 Metafile 中选定矩形内的记录逐个发送到回调方法,以在指定的平行四边形中用指定的图像特性显示。
EnumerateMetafile(Metafile, Rectangle, Graphics+EnumerateMetafileProc) 将指定 Metafile 中的记录逐个发送到回调方法以在指定的矩形中显示。
EnumerateMetafile(Metafile, Rectangle, Graphics+EnumerateMetafileProc, IntPtr) 将指定 Metafile 中的记录逐个发送到回调方法以在指定的矩形中显示。
EnumerateMetafile(Metafile, Rectangle, Graphics+EnumerateMetafileProc, IntPtr, ImageAttributes) 将指定 Metafile 中的记录逐个发送到回调方法,以在指定的矩形中用指定的图像特性显示。
EnumerateMetafile(Metafile, Rectangle, Rectangle, GraphicsUnit, Graphics+EnumerateMetafileProc) 将 Metafile 中选定矩形内的记录逐个发送到回调方法以在指定的矩形中显示。
EnumerateMetafile(Metafile, Rectangle, Rectangle, GraphicsUnit, Graphics+EnumerateMetafileProc, IntPtr) 将 Metafile 中选定矩形内的记录逐个发送到回调方法以在指定的矩形中显示。
EnumerateMetafile(Metafile, Rectangle, Rectangle, GraphicsUnit, Graphics+EnumerateMetafileProc, IntPtr, ImageAttributes) 将 Metafile 中选定矩形内的记录逐个发送到回调方法,以在指定的矩形中用指定的图像特性显示。
EnumerateMetafile(Metafile, RectangleF, Graphics+EnumerateMetafileProc) 将指定 Metafile 中的记录逐个发送到回调方法以在指定的矩形中显示。
EnumerateMetafile(Metafile, RectangleF, Graphics+EnumerateMetafileProc, IntPtr) 将指定 Metafile 中的记录逐个发送到回调方法以在指定的矩形中显示。
EnumerateMetafile(Metafile, RectangleF, Graphics+EnumerateMetafileProc, IntPtr, ImageAttributes) 将指定 Metafile 中的记录逐个发送到回调方法,以在指定的矩形中用指定的图像特性显示。
EnumerateMetafile(Metafile, RectangleF, RectangleF, GraphicsUnit, Graphics+EnumerateMetafileProc) 将 Metafile 中选定矩形内的记录逐个发送到回调方法以在指定的矩形中显示。
EnumerateMetafile(Metafile, RectangleF, RectangleF, GraphicsUnit, Graphics+EnumerateMetafileProc, IntPtr) 将 Metafile 中选定矩形内的记录逐个发送到回调方法以在指定的矩形中显示。
EnumerateMetafile(Metafile, RectangleF, RectangleF, GraphicsUnit, Graphics+EnumerateMetafileProc, IntPtr, ImageAttributes) 将 Metafile 中选定矩形内的记录逐个发送到回调方法,以在指定的矩形中用指定的图像特性显示。
Equals(Object) 确定指定对象是否等于当前对象。(继承自 Object)
ExcludeClip(Rectangle) 更新此 Graphics 的剪辑区域,以排除 Rectangle 结构所指定的区域。
ExcludeClip(Region) 更新此 Graphics 的剪辑区域,以排除 Region 所指定的区域。
FillClosedCurve(Brush, Point[]) 填充由 Point 结构数组定义的闭合基数样条曲线的内部。
FillClosedCurve(Brush, Point[], FillMode) 使用指定的填充模式填充 Point 结构数组定义的闭合基数样条曲线的内部。
FillClosedCurve(Brush, Point[], FillMode, Single) 使用指定的填充模式和张力填充 Point 结构数组定义的闭合基数样条曲线的内部。
FillClosedCurve(Brush, PointF[]) 填充由 PointF 结构数组定义的闭合基数样条曲线的内部。
FillClosedCurve(Brush, PointF[], FillMode) 使用指定的填充模式填充 PointF 结构数组定义的闭合基数样条曲线的内部。
FillClosedCurve(Brush, PointF[], FillMode, Single) 使用指定的填充模式和张力填充 PointF 结构数组定义的闭合基数样条曲线的内部。
FillEllipse(Brush, Int32, Int32, Int32, Int32) 填充边框所定义的椭圆的内部,该边框由一对坐标、一个宽度和一个高度指定。
FillEllipse(Brush, Rectangle) 填充 Rectangle 结构指定的边框所定义的椭圆的内部。
FillEllipse(Brush, RectangleF) 填充 RectangleF 结构指定的边框所定义的椭圆的内部。
FillEllipse(Brush, Single, Single, Single, Single) 填充边框所定义的椭圆的内部,该边框由一对坐标、一个宽度和一个高度指定。
FillPath(Brush, GraphicsPath) 填充 GraphicsPath 的内部。
FillPie(Brush, Int32, Int32, Int32, Int32, Int32, Int32) 填充由一对坐标、一个宽度、一个高度以及两条射线指定的椭圆所定义的扇形区的内部。
FillPie(Brush, Rectangle, Single, Single) 填充椭圆所定义的扇形区的内部,该椭圆由 RectangleF 结构和两条射线指定。
FillPie(Brush, Single, Single, Single, Single, Single, Single) 填充由一对坐标、一个宽度、一个高度以及两条射线指定的椭圆所定义的扇形区的内部。
FillPolygon(Brush, Point[]) 填充 Point 结构指定的点数组所定义的多边形的内部。
FillPolygon(Brush, Point[], FillMode) 使用指定的填充模式填充 Point 结构指定的点数组所定义的多边形的内部。
FillPolygon(Brush, PointF[]) 填充 PointF 结构指定的点数组所定义的多边形的内部。
FillPolygon(Brush, PointF[], FillMode) 使用指定的填充模式填充 PointF 结构指定的点数组所定义的多边形的内部。
FillRectangle(Brush, Int32, Int32, Int32, Int32) 填充由一对坐标、一个宽度和一个高度指定的矩形的内部。
FillRectangle(Brush, Rectangle) 填充 Rectangle 结构指定的矩形的内部。
FillRectangle(Brush, RectangleF) 填充 RectangleF 结构指定的矩形的内部。
FillRectangle(Brush, Single, Single, Single, Single) 填充由一对坐标、一个宽度和一个高度指定的矩形的内部。
FillRectangles(Brush, Rectangle[]) 填充由 Rectangle 结构指定的一系列矩形的内部。
FillRectangles(Brush, RectangleF[]) 填充由 RectangleF 结构指定的一系列矩形的内部。
FillRegion(Brush, Region) 填充 Region 的内部。
Finalize() 在垃圾回收将某一对象回收前允许该对象尝试释放资源并执行其他清理操作。
Flush() 强制执行所有挂起的图形操作并立即返回而不等待操作完成。
Flush(FlushIntention) 用此方法强制执行所有挂起的图形操作,按照指定,等待或者不等待,在操作完成之前返回。
FromHdc(IntPtr) 从设备上下文的指定句柄创建新的 Graphics。
FromHdc(IntPtr, IntPtr) 从设备上下文的指定句柄和设备的句柄创建新的 Graphics。
FromHdcInternal(IntPtr) 返回指定设备上下文的 Graphics。
FromHwnd(IntPtr) 从窗口的指定句柄创建新的 Graphics。
FromHwndInternal(IntPtr) 创建指定 Windows 句柄的新 Graphics。
FromImage(Image) 从指定的 Graphics 创建新的 Image。
GetContextInfo() 获取累积的图形上下文。
GetHalftonePalette() 获取当前 Windows 的半色调调色板的句柄。
GetHashCode() 作为默认哈希函数。(继承自 Object)
GetHdc() 获取与此 Graphics 关联的设备上下文的句柄。
GetLifetimeService() 检索控制此实例的生存期策略的当前生存期服务对象。(继承自 MarshalByRefObject)
GetNearestColor(Color) 获取与指定的 Color 结构最接近的颜色。
GetType() 获取当前实例的 Type。(继承自 Object)
InitializeLifetimeService() 获取生存期服务对象来控制此实例的生存期策略。(继承自 MarshalByRefObject)
IntersectClip(Rectangle) 将此 Graphics 的剪辑区域更新为当前剪辑区域与指定 Rectangle 结构的交集。
IntersectClip(RectangleF) 将此 Graphics 的剪辑区域更新为当前剪辑区域与指定 RectangleF 结构的交集。
IntersectClip(Region) 将此 Graphics 对象的剪辑区域更新为当前剪辑区域与指定 Region 的交集。
IsVisible(Int32, Int32) 指示由一对坐标指定的点是否包含在此 Graphics 的可见剪辑区域内。
IsVisible(Int32, Int32, Int32, Int32) 指示由一对坐标、一个宽度和一个高度指定的矩形是否包含在此 Graphics 的可见剪辑区域内。
IsVisible(Point) 指示指定的 Point 结构是否包含在此 Graphics 的可见剪辑区域内。
IsVisible(PointF) 指示指定的 PointF 结构是否包含在此 Graphics 的可见剪辑区域内。
IsVisible(Rectangle) 指示 Rectangle 结构指定的矩形是否包含在此 Graphics 的可见剪辑区域内。
IsVisible(RectangleF) 指示 RectangleF 结构指定的矩形是否包含在此 Graphics 的可见剪辑区域内。
IsVisible(Single, Single) 指示由一对坐标指定的点是否包含在此 Graphics 的可见剪辑区域内。
IsVisible(Single, Single, Single, Single) 指示由一对坐标、一个宽度和一个高度指定的矩形是否包含在此 Graphics 的可见剪辑区域内。
MeasureCharacterRanges(String, Font, RectangleF, StringFormat) 获取 Region 对象的数组,其中每个对象将字符位置的范围限定在指定字符串内。
MeasureString(String, Font) 测量用指定的 Font 绘制的指定字符串。
MeasureString(String, Font, Int32) 测量用指定的 Font 绘制的指定字符串。
MeasureString(String, Font, Int32, StringFormat) 测量用指定的 Font 绘制并用指定的 StringFormat 格式化的指定字符串。
MeasureString(String, Font, PointF, StringFormat) 测量用指定的 Font 绘制并用指定的 StringFormat 格式化的指定字符串。
MeasureString(String, Font, SizeF) 当在指定的布局区域内以指定的 Font 绘制时,测量指定的字符串。
MeasureString(String, Font, SizeF, StringFormat) 测量用指定的 Font 绘制并用指定的 StringFormat 格式化的指定字符串。
MeasureString(String, Font, SizeF, StringFormat, Int32, Int32) 测量用指定的 Font 绘制并用指定的 StringFormat 格式化的指定字符串。
MemberwiseClone() 创建当前 Object 的浅表副本。(继承自 Object)
MemberwiseClone(Boolean) 创建当前 MarshalByRefObject 对象的浅表副本。(继承自 MarshalByRefObject)
MultiplyTransform(Matrix) 将此 Graphics 的世界转换乘以指定的 Matrix。
MultiplyTransform(Matrix, MatrixOrder) 以指定顺序将此 Graphics 的世界转换乘以指定的 Matrix。
ReleaseHdc() 释放通过以前对此 GetHdc() 的 Graphics 方法的调用获得的设备上下文句柄。
ReleaseHdc(IntPtr) 释放通过以前对此 GetHdc() 的 Graphics 方法的调用获得的设备上下文句柄。
ReleaseHdcInternal(IntPtr) 释放设备上下文的句柄。
ResetClip() 将此 Graphics 的剪辑区域重置为无限区域。
ResetTransform() 将此 Graphics 的世界变换矩阵重置为单位矩阵。
Restore(GraphicsState) 将此 Graphics 的状态还原到 GraphicsState 表示的状态。
RotateTransform(Single) 将指定旋转应用于此 Graphics 的转换矩阵。
RotateTransform(Single, MatrixOrder) 以指定顺序将指定旋转应用到此 Graphics 的变换矩阵。
Save() 保存此 Graphics 的当前状态,并用 GraphicsState 标识保存的状态。
ScaleTransform(Single, Single) 将指定的缩放操作应用于此 Graphics 的转换矩阵,方法是将该对象的转换矩阵左乘该缩放矩阵。
ScaleTransform(Single, Single, MatrixOrder) 以指定顺序将指定的缩放操作应用到此 Graphics 的转换矩阵。
SetClip(Graphics) 将此 Graphics 的剪辑区域设置为指定 Graphics 的 Clip 属性。
SetClip(Graphics, CombineMode) 将此 Graphics 的剪辑区域设置为当前剪辑区域和指定的 Graphics 的 Clip 属性指定的组合操作的结果。
SetClip(GraphicsPath) 将此 Graphics 的剪辑区域设置为指定的 GraphicsPath。
SetClip(GraphicsPath, CombineMode) 将此 Graphics 的剪辑区域设置为当前剪辑区域与指定 GraphicsPath 的组合结果。
SetClip(Rectangle) 将此 Graphics 的剪辑区域设置为 Rectangle 结构指定的矩形。
SetClip(Rectangle, CombineMode) 将此 Graphics 的剪辑区域设置为当前剪辑区域与 Rectangle 结构所指定矩形的组合结果。
SetClip(RectangleF) 将此 Graphics 的剪辑区域设置为 RectangleF 结构指定的矩形。
SetClip(RectangleF, CombineMode) 将此 Graphics 的剪辑区域设置为当前剪辑区域与 RectangleF 结构所指定矩形的组合结果。
SetClip(Region, CombineMode) 将此 Graphics 的剪辑区域设置为当前剪辑区域与指定 Region 的组合结果。
ToString() 返回表示当前对象的字符串。(继承自 Object)
TransformPoints(CoordinateSpace, CoordinateSpace, Point[]) 使用此 Graphics 的当前世界转换和页转换,将点数组从一个坐标空间转换到另一个坐标空间。
TransformPoints(CoordinateSpace, CoordinateSpace, PointF[]) 使用此 Graphics 的当前世界转换和页转换,将点数组从一个坐标空间转换到另一个坐标空间。
TranslateClip(Int32, Int32) 将此 Graphics 的剪辑区域沿水平方向和垂直方向平移指定的量。
TranslateClip(Single, Single) 将此 Graphics 的剪辑区域沿水平方向和垂直方向平移指定的量。
TranslateTransform(Single, Single) 通过使此 Graphics 的转换矩阵左乘指定的平移来更改坐标系统的原点。
TranslateTransform(Single, Single, MatrixOrder) 通过以指定顺序将指定平移应用于此 Graphics 的转换矩阵来更改坐标系统的原点。

        4、示例

        ①在窗体或控件的Paint事件中创建,将其作为PaintEventArgs的一部分。在为控件创建绘制代码时,通常会使用此方法来获取对图形图像的引用。

private void Form1_Paint(object sender,PaintEventArgs e)
{
    Graphics gg1 = e.Graphics;
    //e对应上面PaintEventArgs e里的
}

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

在窗体加载的事件中,通过CreateGraphics方法创建Graphics对象。
private void Form1_Load(object sender,EventArgs e)
{
    Graphics gg1;
    gg1 = this.CreateGraphics();
}

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

private void Form1_Load(object sender,EventArgs e)
{
    Bitmap Image01 = new Bitmap(@"D:\001.bmp");
    Graphics gg1 = Graphics.FromImage(Image01);
}

猜你喜欢

转载自blog.csdn.net/qq_45336030/article/details/126960624