AGG概述

26 篇文章 0 订阅
1 篇文章 0 订阅

 

一、AGG是什么
AGG,全名:Anti-Grain Geometry,是一个开源的、高效的2D图形库,它的网站:http://www.antigrain.com/

二、?GG的特点?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上找到。

 

原文:

http://blog.vckbase.com/linkman/archive/2005/01/18/2648.aspx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值