• C# GDI+编程之Graphics类


      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:	est.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方法的说明

      由于时间有限,后续还会对GDI+ 相关内容进行更新

      

  • 相关阅读:
    力扣(LeetCode)605. 种花问题
    力扣(LeetCode)463. 岛屿的周长
    力扣(LeetCode)561. 数组拆分 I
    力扣(LeetCode) 263. 丑数
    区块链历史
    力扣(LeetCode) 821. 字符的最短距离
    力扣(LeetCode)804. 唯一摩尔斯密码词
    cmd 查看端口
    nginx windows版 下载和启动
    luogu P1270 “访问”美术馆
  • 原文地址:https://www.cnblogs.com/forever-Ys/p/10447617.html
Copyright © 2020-2023  润新知