zoukankan      html  css  js  c++  java
  • .NET3.5 GDI+ 图形操作4

          前言: 本文章抄袭自本人刚刚买的《ASP.NET 3.5从入门到精通》这本书,此书介绍在 http://www.china-pub.com/44991 ,本文章95%与此书的内容完全一样,另5%是我改正一些失误以后加上去的,该书原示例代码只能运行在IE核心的浏览器上,非IE核心浏览器上运行会出现些显示问题,本人更改了其中的一些代码。本文章经历昨晚本人五个小时的手打而成(且还未打完,下班回去继续打,想不到我的打字速度退化得这么快,郁闷!!!),俗话说:好记性不如烂笔头,把书的内容手打出来,对手,对脑,都有好处!!!


    10.3 基本绘图

    .NET中图形包括以下两个步骤。

    第一,创建Graphics对象。

    第二,使用Graphics对象绘制线条和形状,呈现文本或显示操作图像。

    由此可见,如何创建Graphics对象是首先要解决的问题。本节将讲述如何绘制直线、矩形、圆等基本图形,然后基本图形构成复杂的图形。Graphics常用的绘图方法如下表。

     
     

    10.3.1 创建图形对象

    创建图形对象可有如下几种方法。

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

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

    ²  由从Image继承的任何对象创建Graphics对象。此方法一般用来生成图片。

    ASP.NET Web应用程序而言,前两种是无法做到的,因此只能采用第三种方法。

    假设要从网站根目录mm.jpg图形创建图形对象,可以使用如下代码:

    Bitmap bmp = new Bitmap(Server.MapPath("~/mm.jpg"));
    Graphics g 
    = Graphics.FromImage(bmp);
    bmp.Dispose();
    g.Dispose();


    注意:这里要求图片必须存在,相当于对图片的修改操作,否则将不能创建Bitmap对象,也就无法创建图形对象了。另外,Bitmap对象和图形对象都是非常耗费计算机内存的,所以要及时调用Dispose方法释放占用资源。


     

    当然,也可以在内存中新建Bitmap对象,对其绘制完毕后再保存到硬盘上或直接输入到HTTP流中发回客户端显示。比如在内存中创建一个200+100的图像,代码如下:

     

    Bitmap bmp = new Bitmap(200,100);
    Graphics g 
    = Graphics.FromImage(bmp);
    bmp.Dispose();
    g.Dispose();

     

    如果要新创建一个图像,则用这种方法是最好的。

     

    10.3.2 绘制直线

    绘制直线一般使用Graphics对象的DrawLine方法。下面的代码在mm.jpg图片上用红色线条斜画一条直线。

    Code

    代码说明:


    bmp.Save: Image对象保存到磁盘。Graphics对象并非直接在原图上画直线,而是在内存中操作Image对象,所以需要另存为mm2.jpg才能看出效果。

    程序运行后,查看mm2.jpg文件就可以看到效果了,如下图:

     

    撸码:复制、粘贴,拿起键盘就是“干”!!!
  • 相关阅读:
    BestCoder6 1002 Goffi and Squary Partition(hdu 4982) 解题报告
    codeforces 31C Schedule 解题报告
    codeforces 462C Appleman and Toastman 解题报告
    codeforces 460C. Present 解题报告
    BestCoder3 1002 BestCoder Sequence(hdu 4908) 解题报告
    BestCoder3 1001 Task schedule(hdu 4907) 解题报告
    poj 1195 Mobile phones 解题报告
    二维树状数组 探索进行中
    codeforces 460B Little Dima and Equation 解题报告
    通过Sql语句控制SQLite数据库增删改查
  • 原文地址:https://www.cnblogs.com/niunan/p/1438850.html
Copyright © 2011-2022 走看看