图形编程入门之如何创建用于绘制的 Graphics 对象

需要先创建 Graphics 对象,然后才可以使用 GDI+ 绘制线条和形状、呈现文本或显示与操作图像。Graphics 对象表示 GDI+ 绘图表面,是用于创建图形图像的对象。

 

处理图形包括两个步骤:

  1. 创建 Graphics 对象。

  2. 使用 Graphics 对象绘制线条和形状、呈现文本或显示与操作图像。

创建图形对象

可以用各种方法创建图形对象。

创建图形对象

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

    - 或 -

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

    - 或 -

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

    下面的部分给出了有关这些过程的详细信息。

Paint 事件处理程序中的 PaintEventArgs

当对控件的 PaintEventHandler 编程时,需提供一个图形对象作为 PaintEventArgs 之一。

获取对 Paint 事件的 PaintEventArgs 中 Graphics 对象的引用

  1. 声明 Graphics 对象。

  2. 分配变量以引用作为 PaintEventArgs 的一部分传递的 Graphics 对象。

  3. 插入代码来绘制窗体或控件。

下面的示例演示了如何从 Paint 事件中的 PaintEventArgs 引用 Graphics 对象。

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. }

CreateGraphics 方法

也可以使用控件或窗体的 CreateGraphics 方法来获取对 Graphics 对象的引用,该对象表示该控件或窗体的绘图图面。

用 CreateGraphics 方法创建 Graphics 对象

  • 调用要用于呈现图形的窗体或控件的 CreateGraphics 方法。

  •  

  • 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();

 

从 Image 对象创建

另外,可以从 Image 类派生的任何对象创建图形对象。

从 Image 创建 Graphics 对象

下面的示例演示如何使用 Bitmap 对象:

 

Bitmap myBitmap = new Bitmap(@"C:/Documents and Settings/Joe/Pics/myPic.bmp"); Graphics g = Graphics.FromImage(myBitmap);

 

Note注意

只能从非索引 .bmp 文件(如 16 位、24 位和 32 位的 .bmp 文件)创建 Graphics 对象。索引 .bmp 文件的像素将索引保存到颜色表中,相比而言,非索引 .bmp 文件的每个像素保存一种颜色。

绘制和操作形状与图像

Graphics 对象在创建后,可用于绘制线条和形状、呈现文本或显示与操作图像。与 Graphics 对象一起使用的主要对象有:

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

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

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

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

使用创建的图形对象

请参见

     本文转自xyz_lmn51CTO博客,原文链接:http://blog.51cto.com/xyzlmn/819951 ,如需转载请自行联系原作者
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值