C# GDI+ 简单学习 拓荒者

 

一、创建Graphics对象

要绘制图像,首先要创建Graphics对象,然后才可以使用GDI+绘制线条和形状,呈现文本或显示与操作图像。Graphics对象是GDI+的绘图表面,是用于创建图形图像的对象。创建Graphics对象有下面三个方法(摘自MSDN):

1、在窗体或控件的 Paint 事件中接收对图形对象的引用,作为 PaintEventArgs 的一部分。在为控件创建绘制代码时,通常会使用此方法来获取对图形对象的引用。

private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs pe)

{

   // Declares the Graphics object and sets it to the Graphics object

   // supplied in the PaintEventArgs.

   Graphics g = pe.Graphics;

   // Insert code to paint the form here.

}

 

2、调用某控件或窗体的 CreateGraphics 方法以获取对 Graphics 对象的引用,该对象表示该控件或窗体的绘图图面。如果想在已存在的窗体或控件上绘图,请使用此方法。

Graphics g;

// Sets g to a graphics object representing the drawing surface of the

// control or form g is a member of.

g = this.CreateGraphics();

 

3、由从 Image 继承的任何对象创建 Graphics 对象。此方法在您需要更改已存在的图像时十分有用。

Bitmap myBitmap = new Bitmap(@"C:\Documents and

   Settings\Joe\Pics\myPic.bmp");

Graphics g = Graphics.FromImage(myBitmap);

 

二、与Graphics有关的类

1、    Pen -- 用于绘制线条、勾勒形状轮廓或呈现其他几何表示形式。

Pen 绘制指定宽度和样式的直线。使用 DashStyle 属性绘制几种虚线。可以使用各种填充样式(包括纯色和纹理)来填充 Pen 绘制的直线。填充模式取决于画笔或用作填充对象的纹理。无法继承该类。

下面的代码示例演示了如何使用 Brush 构造 Pen,以及在 Pen 上设置 LineJoin 属性的效果。

此示例是针对使用 Windows 窗体而设计的。将代码粘贴到一个窗体中,然后在处理窗体的 Paint 事件时调用 ShowLineJoin 方法,并传递 e 作为 PaintEventArgs

private void ShowLineJoin(PaintEventArgs e)

{

    // Create a new pen.

    Pen skyBluePen = new Pen(Brushes.DeepSkyBlue);

    // Set the pen's width.

    skyBluePen.Width = 8.0F;

    // Set the LineJoin property.

    skyBluePen.LineJoin = System.Drawing.Drawing2D.LineJoin.Bevel;

    // Draw a rectangle.

    e.Graphics.DrawRectangle(skyBluePen, new Rectangle(40, 40, 150, 200));

    //Dispose of the pen.

    skyBluePen.Dispose();

}

 

2、    Brush -- 用于填充图形区域,如实心形状、图像或文本。

这是一个抽象基类,不能进行实例化。若要创建一个画笔对象,请使用从 Brush 派生出的类,如 SolidBrushTextureBrush LinearGradientBrush。当从Brush类继承时,必须重写 Clone方法。

 

3、    Font -- 提供有关在呈现文本时要使用什么形状的说明。

Windows 窗体应用程序支持 TrueType 字体,并且对 OpenType 字体提供有限的支持。如果您试图使用不受支持的字体,或者在运行此应用程序的计算机上未安装要使用的字体,则用 Microsoft Sans Serif 替代该字体。无法继承该类。

 

4、    Color 结构 -- 表示要显示的不同颜色。

Color结构表示ARGB颜色。有关 Color 结构的属性所表示的颜色的更多信息,请参见位于 http://www.microsoft.com/china/msdn/library MSDN Library 中的“Color Table”(颜色表)。

示例:截屏程序,使用C#截取屏幕,实现原理 1、获取屏幕,保存在一个Bmp图片。 2、获取一个窗体,并设置该窗体为最大化,并且设置FormBoderStyle为none,使窗体遮罩整个屏幕。
代码:/Files/youring2/SampleCatchScreen.rar

2021年9月 北京、西安两地,高薪诚聘 .NET工程师,请私信联系!
如果认为此文对您有帮助,别忘了支持一下哦!
声明:本博客原创文字只代表本人工作中在某一时间内总结的观点或结论,与本人所在单位没有直接利益关系。转载时请在文章页面明显位置给出原文链接。
原文地址:https://www.cnblogs.com/youring2/p/1582943.html