一、创建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,如需转载请自行联系原作者