• C#学习记录——GDI+绘图基础


    GDI+绘图基础

    GDI+概述

    GDI+指的是.NET Framework 4.0中提供二维图形、图像处理等功能,是构成Windows操作系统的一个子系统,它提供了图形图像操作的应用程序编程接口(API)。使用GDI+可以用相同的方式在屏幕或打印机上显示信息,而无须考虑特定显示设备的细节。GDI+类提供程序员用以绘制的方法,这些方法随后会调用特定设备的驱动程序。GDI+将应用程序与图形硬件分隔,使程序员能够创建与设备无关的应用程序。GDI+主要用于在窗体上绘制各种图形图像,可以用于绘制各种数据图形、数学仿真等。GDI+可以在窗体程序中产生很多自定义的图形,便于开发人员展示各种图形化的数据。

    创建Graphics对象

    (1)在Paint事件中创建Graphics对象。

    Private void Form1_Paint(object,PaintEventArgs e)
    {
    	Graphics g = e.Graphics;
    }
    
    • 1
    • 2
    • 3
    • 4

    (2) 在窗体的Load事件中,通过CreateGraphics方法创建Graphics对象。

    Private void Form1_Load(object sender,EventArgs e)
    {
    	Graphics g;
    	g = this.CreateGraphics();
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    (3) 在窗体的Load事件中,通过FromImage方法创建Graphics对象。

    Private void Form1_Load(object sender,EventArgs e)
    {
    	Bitmap mbit = new Bitmap(@"C:\Is.bmp")
    	Graphics g = Graphics.FromImage(mbit);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    创建Pen对象

    Pen 类主要用于绘制线条,或者线条组合成的其他几何形状。Pen类的构造函数如下。
    语法:

    public Pen(Color color,float width)
    
    • 1

    color:设置Pen的颜色。
    width:设置Pen的宽度。
    例如:

    //实例化一个Pen类,并设置其颜色和宽度
    Pen mypen1 = new Pen(Color.Blue,2);
    
    • 1
    • 2

    创建Brush对象

    Brush类主要用于填充几何图形,如将正方形和圆形填充其他颜色。
    Brush类是一个抽象基类,不能进行实例化。若要创建一个画笔对象,需要使用从Brush派生出的类,如下面的3个派生子类:
    (1)SolidBrush类,构造器如下:

    public SolidBrush(Color color)
    
    • 1

    color:表示此画笔的颜色。
    (2)HatchBrush类,构造器如下:

    public HatchBrush(HatchStyle hatchstyle,Color foreColor)
    
    • 1

    hatchstyle:HatchStyle值之一,表示此HatchBrush所绘制的图案
    foreColor:Color结构,它表示此HatchBrush所绘制线条的颜色。
    (3)LinerGradientBrush类,构造器如下:

    public LineGradientBrush(Point point1,Point point2,Color color1,Color color2)
    
    • 1

    样例:

    using System.Windows.Forms;
    
    namespace Alei
    {
    	public partial class Form1:Form
    	{
    		InitializeComponent();
    	}
    	private void button1_Click(object sender,EventArgs e)
    	{
    		Graphics ghs = this.CreateGraphics();        //创建Graphics对象
    		Brush mybs = new SolidBrush(Color.Red);      //使用SolidBrush类创建一个Brush对象
    		Rectangle rt = new Rectangle(10,10,100,100); //绘制一个矩形
    		ghs.FillRectangle(mybs,rt);                  //用Brush填充Rectangle
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
  • 相关阅读:
    Azide-SS-biotin|CAS:1620523-64-9|生物素-二硫键-叠氮可降解 (cleavable) 的 ADC linke
    Web3 来了,让我们展开双手拥抱它吧!
    SSRF
    深入探讨 Golang 中的追加操作
    祥云杯crypto-wp
    范围分区(暑假每日一题 39)
    金仓数据库 KingbaseES SQL 语言参考手册 (21. KES正则表达式支持)
    探索图像分辨率对于模型的影响,基于yolov5x开发构建桥洞、隧道、涵洞等水泥洞体建筑裂缝缺陷等检测识别系统
    国内券商有没有量化交易接口,哪家做的比较好
    Centos7下安装Docker
  • 原文地址:https://blog.csdn.net/u013097500/article/details/128009196