[MSDN翻译 之 《关于GDI+》] [2] GDI+新特性
2006-01-08 20:35
274 查看
GDI+有哪些新特性?
[align=center][/align]微软GDI+开发库与先前的GDI主要有两方面不同。一,GDI+扩展了GDI的功能,如颜色渐变填充,Alpha透明运算;二,重新设计的编程模型,使得开发图形程序更加方便。
新特性
[align=center][/align]下面的部分描述了GDI+的一些新特性。
渐变画刷
基本样条曲线
独立路径对象
变换和矩阵
可伸缩区域
Alpha叠加
多种图像格式的支持
渐变画刷(Gradient Brushes)
GDI+从GDI上扩展了对图形的颜色渐变填充。渐变画刷也可以用来绘制直线、曲线、路径。当你使用渐变画刷填充图形时,颜色会沿着图形的某个方向上逐渐变化。例如,假设你创建了一个水平渐变的画刷,并且指定画刷的左边是蓝色,右边是绿色,当使用这个画刷来填充图形时,会在被填充图形中产生从左向右,从蓝色向绿色逐渐变化的效果。类似,使用垂直画刷填充图形时,是从上至下的方向填充。下面两图分别是使用水平画刷填充的椭圆形,以及倾斜画刷填充的不规则区域。
![](http://blog.csdn.net/images/blog_csdn_net/guanzhongs/GDIplus_newfeatures_1.jpg)
当你使用路径渐变画刷填充图形时,有几种方式可供选择,以描述颜色如何沿着图形的方向发生渐变。一种设置方式是从图形中心向边缘发生颜色渐变。下图演示了用路径渐变画刷填充一对Bezier曲线构成的区域的情况。
![](http://blog.csdn.net/images/blog_csdn_net/guanzhongs/GDIplus_newfeatures_2.jpg)
基本样条曲线(Cardinal Splines)
GDI+支持GDI中所不支持的样条曲线。样条曲线是由多条单独的曲线连接成的更长的曲线。样条曲线用被其依次穿过的一系列点来定义,曲线必须平滑的穿过这些点(不能有锋利的拐角。译者注:在数学定义中,平滑曲线要求曲线方程的一阶导数是连续函数),使得曲线看起来要比直接将这些点用直线连接起来漂亮一些。下图演示了两条曲线,上面这条是样条曲线,下面那条是直线连接的点。
![](http://blog.csdn.net/images/blog_csdn_net/guanzhongs/GDIplus_newfeatures_3.jpg)
独立路径对象(Independent Path Objects)
GDI中,一条路径属于一个设备上下文(device context), 并且路径在绘制之后就被销毁了。但在GDI+中,绘图由图形对象来完成,这样你就可以创建并且持续拥有一些与Graphics对象分离的GraphicsPath对象。GraphicsPath对象在绘制操作后不会被销毁,所以你就可以用同一个GraphicsPath对象多次绘制路径。
变换和矩阵(Transformations and the Matrix Object)
GDI+提供了矩阵对象,一个进行几何变换(旋转,移动等)的方便快捷的工具。矩阵对象需要与被变换的对象结合使用。如,GraphicsPath对象有一个Transform方法,接受一个Matrix对象作为参数。一个3×3的矩阵可以表示一个变换,也可以表示一系列变换。下图演示了一个路径的原始情况,以及经过两次变换(首先缩放,然后旋转)后的样子。
![](http://blog.csdn.net/images/blog_csdn_net/guanzhongs/GDIplus_newfeatures_4.jpg)
可伸缩区域(Scalable Regions)
GDI+对GDI的区域(regions)功能进行了出色的扩充。在GDI中,region被保存在设备坐标中,并且只能进行平移变换。而GDI+中,region被保存在世界坐标系中,并且支持任何几何变换(如缩放,伸缩)。下图演示了一个区域(region)的原始情况,以及经过三个变换(伸缩,旋转,平移)叠加后的样子。
![](http://blog.csdn.net/images/blog_csdn_net/guanzhongs/GDIplus_newfeatures_5.jpg)
Alpha叠加(Alpha Blending)
注意前面的图示,你可以透过变换后的图形看到他下面红色的原始图形。这是用GDI+中的Alpha叠加运算实现的。对于Alpha运算,你可以指定填充颜色的透明度,透明颜色的效果是通过颜色与底色的叠加运算获得的,前景颜色看起来越透明,则背景色(底色)看起来越清晰。下图演示了四个同样使用红色填充的椭圆形,但是他们的透明度不同。
![](http://blog.csdn.net/images/blog_csdn_net/guanzhongs/GDIplus_newfeatures_6.jpg)
多种图像格式的支持(Support for Multiple Image Formats)
GDI+提供了图像,位图,元数据文件操作类,使得用户可以以多种格式保存图像数据,具体支持下述类型:
![](http://blog.csdn.net/fckeditor/editor/PicExportError)
BMP
![](http://blog.csdn.net/fckeditor/editor/PicExportError)
Graphics Interchange Format (GIF)
![](http://blog.csdn.net/fckeditor/editor/PicExportError)
JPEG
![](http://blog.csdn.net/fckeditor/editor/PicExportError)
Exif
![](http://blog.csdn.net/fckeditor/editor/PicExportError)
PNG
![](http://blog.csdn.net/fckeditor/editor/PicExportError)
TIFF
![](http://blog.csdn.net/fckeditor/editor/PicExportError)
ICON
![](http://blog.csdn.net/fckeditor/editor/PicExportError)
WMF
![](http://blog.csdn.net/fckeditor/editor/PicExportError)
EMF
[align=center][/align]微软GDI+开发库与先前的GDI主要有两方面不同。一,GDI+扩展了GDI的功能,如颜色渐变填充,Alpha透明运算;二,重新设计的编程模型,使得开发图形程序更加方便。
新特性
[align=center][/align]下面的部分描述了GDI+的一些新特性。渐变画刷
基本样条曲线
独立路径对象
变换和矩阵
可伸缩区域
Alpha叠加
多种图像格式的支持
渐变画刷(Gradient Brushes)
GDI+从GDI上扩展了对图形的颜色渐变填充。渐变画刷也可以用来绘制直线、曲线、路径。当你使用渐变画刷填充图形时,颜色会沿着图形的某个方向上逐渐变化。例如,假设你创建了一个水平渐变的画刷,并且指定画刷的左边是蓝色,右边是绿色,当使用这个画刷来填充图形时,会在被填充图形中产生从左向右,从蓝色向绿色逐渐变化的效果。类似,使用垂直画刷填充图形时,是从上至下的方向填充。下面两图分别是使用水平画刷填充的椭圆形,以及倾斜画刷填充的不规则区域。![](http://blog.csdn.net/images/blog_csdn_net/guanzhongs/GDIplus_newfeatures_1.jpg)
当你使用路径渐变画刷填充图形时,有几种方式可供选择,以描述颜色如何沿着图形的方向发生渐变。一种设置方式是从图形中心向边缘发生颜色渐变。下图演示了用路径渐变画刷填充一对Bezier曲线构成的区域的情况。
![](http://blog.csdn.net/images/blog_csdn_net/guanzhongs/GDIplus_newfeatures_2.jpg)
基本样条曲线(Cardinal Splines)
GDI+支持GDI中所不支持的样条曲线。样条曲线是由多条单独的曲线连接成的更长的曲线。样条曲线用被其依次穿过的一系列点来定义,曲线必须平滑的穿过这些点(不能有锋利的拐角。译者注:在数学定义中,平滑曲线要求曲线方程的一阶导数是连续函数),使得曲线看起来要比直接将这些点用直线连接起来漂亮一些。下图演示了两条曲线,上面这条是样条曲线,下面那条是直线连接的点。![](http://blog.csdn.net/images/blog_csdn_net/guanzhongs/GDIplus_newfeatures_3.jpg)
独立路径对象(Independent Path Objects)
GDI中,一条路径属于一个设备上下文(device context), 并且路径在绘制之后就被销毁了。但在GDI+中,绘图由图形对象来完成,这样你就可以创建并且持续拥有一些与Graphics对象分离的GraphicsPath对象。GraphicsPath对象在绘制操作后不会被销毁,所以你就可以用同一个GraphicsPath对象多次绘制路径。变换和矩阵(Transformations and the Matrix Object)
GDI+提供了矩阵对象,一个进行几何变换(旋转,移动等)的方便快捷的工具。矩阵对象需要与被变换的对象结合使用。如,GraphicsPath对象有一个Transform方法,接受一个Matrix对象作为参数。一个3×3的矩阵可以表示一个变换,也可以表示一系列变换。下图演示了一个路径的原始情况,以及经过两次变换(首先缩放,然后旋转)后的样子。![](http://blog.csdn.net/images/blog_csdn_net/guanzhongs/GDIplus_newfeatures_4.jpg)
可伸缩区域(Scalable Regions)
GDI+对GDI的区域(regions)功能进行了出色的扩充。在GDI中,region被保存在设备坐标中,并且只能进行平移变换。而GDI+中,region被保存在世界坐标系中,并且支持任何几何变换(如缩放,伸缩)。下图演示了一个区域(region)的原始情况,以及经过三个变换(伸缩,旋转,平移)叠加后的样子。![](http://blog.csdn.net/images/blog_csdn_net/guanzhongs/GDIplus_newfeatures_5.jpg)
Alpha叠加(Alpha Blending)
注意前面的图示,你可以透过变换后的图形看到他下面红色的原始图形。这是用GDI+中的Alpha叠加运算实现的。对于Alpha运算,你可以指定填充颜色的透明度,透明颜色的效果是通过颜色与底色的叠加运算获得的,前景颜色看起来越透明,则背景色(底色)看起来越清晰。下图演示了四个同样使用红色填充的椭圆形,但是他们的透明度不同。![](http://blog.csdn.net/images/blog_csdn_net/guanzhongs/GDIplus_newfeatures_6.jpg)
多种图像格式的支持(Support for Multiple Image Formats)
GDI+提供了图像,位图,元数据文件操作类,使得用户可以以多种格式保存图像数据,具体支持下述类型:BMP
Graphics Interchange Format (GIF)
JPEG
Exif
PNG
TIFF
ICON
WMF
EMF
相关文章推荐
- [MSDN翻译 之 《关于GDI+》] [1] GDI+介绍
- MSDN关于RIL的翻译
- MSDN中文站增加了几篇关于Smart Client的翻译文章
- 关于 Service 设计初步(MSDN节选翻译)
- 【翻译】WPF4.5新特性(MSDN的翻译读不太懂)
- 【翻译】WPF4.5新特性(MSDN的翻译读不太懂)
- MSDN关于RIL的翻译
- MSDN关于RIL的翻译
- 关于微软的DMO(Directx Media Object)MSDN翻译文章(一)
- WPF4.5新特性(MSDN的翻译读不太懂)
- MSDN关于RIL的翻译
- MSDN中关于完成端口相应API的翻译
- 关于《Java2核心技术 卷二:高级特性的 (V1.3)5E》的翻译
- MSDN中文网站关于翻译有很严重的问题
- 关于C#循环图片GDI+内存不足异常的记录
- [翻译]ASP.NET MVC4新特性之脚本压缩和合并
- 黑马程序员---关于JAVA中JDK1.5新特性
- 关于CIF,4CIF,QCIF,D1的定义和特性
- 关于socket应该被翻译为多孔插座
- C#中的特性(Attributes)(翻译)