zoukankan      html  css  js  c++  java
  • 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 填充区域
  • 相关阅读:
    【caffe】epoch,[batch_size],iteration的含义
    OAuth2.0学习(1-6)授权方式3-密码模式(Resource Owner Password Credentials Grant)
    OAuth2.0学习(1-5)授权方式2-简化模式(implicit grant type)
    OAuth2.0学习(1-4)授权方式1-授权码模式(authorization code)
    OAuth2.0学习(1-3)OAuth2.0的参与者和流程
    OAuth2.0学习(1-1)OAuth2.0是什么?
    nodejs(1-1)
    HTTP协议扫盲(一)HTTP协议的基本概念和通讯原理
    MySql入门(2-2)创建数据库
    SpringCloud的注解:EnableEurekaClient vs EnableDiscoveryClient
  • 原文地址:https://www.cnblogs.com/huacw/p/3775265.html
Copyright © 2011-2022 走看看