C# GDI+编程之基础篇 一、关于 GDI+从本质上来看,GDI+为开发者提供了一组实现与各种设备(例如监视器,打印机与其它具有图形化能力但不与涉与这些图形细节的设备)进行交互的库函数
GDI+的本质在于,它能够替代开发人员实现与例如显示器与其它外设的交互;而从开发者角度来看,要实现与这些设备的直接交互却是一项艰巨的任务
以下图 1 展示了 GDI+在开发人员与上述设备之间起着重要的中介作用
其中,GDI+为我们“包办”了几乎一切—从把一个简单的字符串“HelloWorld”打印到控制台到绘制直线,矩形甚至是打印一个完整的表单等
GDI+担当着重要的中介作用那么,GDI+是如何工作的呢
为了弄清这个问题,让我们来分析一个示例—绘制一条线段
实质上,一条线段就是一个从一个开始位置(X0,Y0)到一个完毕位置(Xn,Yn)的一系列像素点的集合
为了画出这样的一条线段,设备(在本例中指显示器)需要知道相应的设备坐标或物理坐标
然而,开发人员不是直接告诉该设备,而是调用 GDI+的 drawLine()方法,然后,由 GDI+在存(即“视频存”)中绘制一条从点 A 到点 B 的直线
GDI+读取点 A 和点 B 的位置,然后把它们转换成一个像素序列,并且指令监视器显示该像素序列
简言之,GDI+把设备独立的调用转换成了一个设备可理解的形式;或者实现相反方向的转换
至此,我们已经简单了解了 GDI+的工作机理
现在,让我们开始探讨如何实现一些基本的图像操作
二、图像操作—缩略图,缩放与保存在本文示例中,我们将实现如下的任务: 1
缩放一个加载的图像
保存一个操作中的图像
a) 创建缩略图 缩略图是图像的浓缩版本
典型情况下,一幅缩略图图像的尺寸为 80×200 像素
在GDI+中,一个图像的缩略图可以通过使用 Image 类的 GetT