Linkman的学习记录

学习记录,兴趣方面:实时数据库、MES、SIS、工控软件、C++编程、人机界面、嵌入式软件、可视化等

VC知识库BLOG 首页 新随笔 联系 聚合 登录
  88 Posts :: 16 Stories :: 374 Comments :: 0 Trackbacks

留言簿(17)

随笔分类

随笔档案

文章分类

文章档案

传说中的名人

我的链接

朋友

搜索

最新评论

阅读排行榜

评论排行榜

一、?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作为图形输出。
?这些库都可以到www.sf.net上找到。

posted on 2005-01-18 01:51 linkman的学习记录 阅读(5067) 评论(7)  编辑 收藏

Feedback

# re: 介绍和推荐AGG 2005-01-20 11:54 谢少云
好东西。。。。有了它 我们就可以不借助gdi+ 直接在dib上实现高速的画线填充功能了 而且有很强的扩展性


# re: 介绍和推荐AGG 2007-10-12 16:23 大壮
谢谢, 刚想学, 就找到了你的文章

# re: 介绍和推荐AGG 2008-03-17 17:18 daixi
这玩意儿还真有点强悍
目前有地方正要用到呢


# re: 介绍和推荐AGG 2008-05-27 11:31 跳线架
比较复杂,没整明白

标题  
姓名  
主页
验证码 *
内容   
  登录  使用高级评论  Top
[使用Ctrl+Enter键可以直接提交]