且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

C# GDI+ 简单学习

更新时间:2022-09-13 09:18:08

一、创建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 派生出的类,如 SolidBrush、TextureBrush 和 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




本文转自齐师傅博客园博客,原文链接:http://www.cnblogs.com/youring2/archive/2009/10/14/1582943.html,如需转载请自行联系原作者