• C#GDI+编程基础(一:Graphics画布类)


    GDI+存在的意义:将变成与具体硬件实现细节分开。

    GDI+步骤:获取画布,绘制图像、处理图像

    命名空间:

    using System.Drawing;//提供对GDI+基本图形功能的访问
    using System.Drawing.Drawing2D;//提供高级的二维和矢量图像功能
    using System.Drawing.Imaging;//提供高级GDI+图像处理功能
    using System.Drawing.Printing;//提供打印相关服务
    using System.Drawing.Text;//提供高级GDI+排版功能
    using System.Drawing.Design;//扩展设计时,用户界面逻辑和绘制的类。用于扩展,自定义

    画图工具:

    Graphics(画布):类封装一个GDI+绘图图面,提供将对象绘制到显示设备的方法,Graphics与特定的设备上下文关联。画图方法被包括在

    Graphics类中,在画任何对象之前都需要创建一个Graphics类实例作为画图。

    创建画布三种方法:

    1.利用控件或窗体的Paint事件的PaintEventArgs

    适用场景:为控件创建绘制代码。

    示例:

    //窗体的Paint事件响应方法

      private void Form1_Paint(object sender, PaintEventArgs e)
        {
               Graphics g = e.Graphics;
        }
    

    //直接重载控件或者窗体的OnPaint方法:

      protected override void OnPaint(PaintEventArgs e)
            {
                base.OnPaint(e);
                Graphics g = e.Graphics;
            }

    注意:Paint事件在重绘控件时发生。

    2.调用某控件或窗体的CreateGraphics方法以获取对Graphics对象的引用,该对象表示控件或窗体的绘图图面。

    适用场景:在已经存在的窗体或控件上绘图

      private void button1_Click(object sender, EventArgs e)
            {
                Graphics g = this.CreateGraphics();
                g.Dispose();
    
            }

    3.由从Image继承的任何对象创建Graphics对象

    适用场景:需要更改已经存在的图像

     private void button1_Click(object sender, EventArgs e)
       {
             Image img = Image.FromFile(@"imagespic.jpg");
             Graphics g=Graphics.FromImage(img);
       }

    Graphics类主要成员方法:

    名称 说明
    DrawArc 画弧
    DrawBezier 画立体的贝塞尔曲线
    DrawBeziers 画连续立体的贝塞尔曲线
    DrawClosedCurve 画闭合曲线
    DrawCurve 画曲线
    DrawEllipse 画椭圆
    DrawImage  画图像
    DrawLine 画线
    DrawPath 通过路劲画线和曲线
    DrawPie 画饼图
    DrawPolygon 画多边形
    DrawRectangle 画矩形
    DrawString 绘制文字
    FillEllipse 填充椭圆
    FillPath 填充路劲
    FillPie 填充饼图
    FillPolygon 填充多边形
    FillRectangle 填充矩形
    FillRectangles 填充矩形组
    FillRegion 填充区域
  • 相关阅读:
    python D32 管道、线程池
    python D31 守护进程、进程锁、队列
    python D30 进程
    python 30 进程之间的相互独立、进程之间的时间差
    python D30 操作系统历史
    python D29 socketserver以及FTB
    python D28 粘包
    net4.0 task 超时任务代码 用Thread.sleep方式实现
    sql取随机结果集
    【ecshop---新增包邮卡功能】
  • 原文地址:https://www.cnblogs.com/huacw/p/3775265.html
Copyright © 2020-2023  润新知