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 填充区域
  • 相关阅读:
    mybatis的物理分页:mybatis-paginator
    maven常用插件: 打包源码 / 跳过测试 / 单独打包依赖项
    mybatis 3.2.8 + log4j2.0.2 控制台输出sql语句
    struts2: config-browser-plugin 与 convention-plugin 学习
    struts2 异常处理3板斧
    java:集合的自定义多重排序
    mac/linux中vim永久显示行号、开启语法高亮
    weblogic下部署应用时slf4j与logbak冲突的解决办法
    struts2使用Convention Plugin在weblogic上以war包部署时,找不到Action的解决办法
    spring 3.2.x + struts2 + mybatis 3.x + logback 整合配置
  • 原文地址:https://www.cnblogs.com/huacw/p/3775265.html
Copyright © 2011-2022 走看看