您的位置:控制工程论坛网论坛 » 自动化软件 » 介绍和推荐AGG

nicebaby

nicebaby   |   当前状态:在线

总积分:415  2024年可用积分:0

注册时间: 2008-09-09

最后登录时间: 2011-08-09

空间 发短消息加为好友

介绍和推荐AGG

nicebaby  发表于 2008/10/26 14:27:27      840 查看 0 回复  [上一主题]  [下一主题]

手机阅读

一、?AGG是什么
?AGG,全名:Anti-Grain Geometry,是一个开源的、高效的2D图形库,它的网站:http://www.antigrain.com/
?
二、?AGG的特点
?AGG的功能与GDI+的功能非常类似,但提供了比GDI+更灵活的编程接口,其产生的图形的质量也非常高,而且它是跨平台的,其宣传可以在非常多的操作系统上运行,我至少在Windows、Wince、Linux三个台平上测试通过。
?
三、?AGG的功能
?1、支持ALPHA、GAMMA等变色处理,以及用户自定义的变色处理;
?2、支持任意2D图形变换;
?3、支持SVG和PostScript描述,适于网上图形生成;
?4、支持高质量的图形处理,支持反走样插值等高级功能;
?5、支持任意方式的惭变色处理;
?6、支持所有颜色格式;
?7、支持对位图的多种处理;
?8、支持直线的多种处理,类似于GDI+;
?9、支持GPC,即通用多边形裁剪方法;
?10、支持多种字体输出,包括汉字的处理;
?
四、?AGG的使用
?在设计上,它是师出Boost库,在其中使用了大量的现代标准C++语言的语法规则,包括模板、仿函数等处理,但是为了能在更多的平台上使用,它并没有直接使用Boost和STL库,而是自己实现了部分STL功能。
?AGG将图形功能分为几个层次,每一层次都可以由用户自己改动和扩充,作为AGG的使用者,可以使用它的全部功能,也可以只使用它的部分功能;作为图形的接口,它允许用户在不同层次上对它进行访问。
?以下是一个典型的作图分层:
?1、定义矢量作图源数据(其定义类似于PostScript);
?2、提供变换管道(包括坐标变换,以及其它可能的数据变换);
?3、将数据转为水平线光删化数据;
?4、将数据转为带颜色格式的输出缓冲区数据;
?5、输出位图或象素数组。
?AGG的设计定位是为其它开发工具提供工具,因此,其使用是灵活但不容易,但通过它提供的几十个例子,可以很容易地入门(但精通不是易事)。
?为了使用AGG,有两种方式,一种方式是直接使用它,一种方式是为它定义一个封装接口。现在网上有一些这方面的封装接口例子(比如说,定义一个仿GDI+的封装接口),可以在它的论坛上找到。本人也编写了一个封装类组,但主要是为了我的项目用的,以后我会提供一个更通用的封装类组。
?
五、?使用AGG的软件
?我前段时间上网查2D图形功能,结果发现了许多库都是或多或少地使用了AGG,于是才对AGG感兴趣,我看中了它的跨平台性,以及运行速度和内存占用等。现在提供几个在内部使用AGG的比较有名的开源项目:
?Inkspace?一个跨平台的SVG编辑软件,部分使用了AGG的功能(还使用了ArtLib的功能,我以后会对ArtLib作介绍)。
?wxArt2d?一个基于Wxwindow的2D图形编辑软件,提供了AGG可以一种作图选择。
?vcf?一个C++框架库,使用AGG作为图形输出。
1楼 0 0 回复