Easy Graphics Engine简写作EGE,是windows下的简易绘图库,是一个类似BGI(graphics.h)的面向C/C++语言新手的图形库,它的目标也是为了替代TC的BGI库而存在,感兴趣的朋友不要错过了。
它的使用方法与TC中的graphics.h相当接近,对新手来说,简单,友好,容易上手,免费开源,而且接口意义直观,即使是完全没有接触过图形编程的,也能迅速学会基本的绘图。
软件介绍
本库是一个类似graphics.h的BGI图形库,使用方法相当接近,所以学习过TC图形的话会很容易上手
基本使用方法几乎和TC的一样,只要#include “graphics.h”就可以了
本图形库目前支持VC6, VC2008, VC2010等IDE,同时也支持MinGW编译器和使用MinGW编译器的IDE(如Code::Blocks,C-Free,Dev-CPP,eclipse for C/C++)
在graphics.h头文件的最顶处有相关的说明,并且附带较详细的pdf文档
●为什么要写这个库?
许多学编程的都是从 C 语言开始入门的,而目前的现状是:
1. 有些学校以 Turbo C 为环境讲 C 语言,只是 Turbo C 的环境实在太老了,复制粘贴都很不方便。
2. 有些学校直接拿 VC 来讲 C 语言,因为 VC 的编辑和调试环境都很优秀,并且 VC 有适合教学的免费版本。可惜在 VC 下只能做一些文字性的练习题,想画条直线画个圆都很难,还要注册窗口类、建消息循环等等,初学者会受严重打击的。初学编程想要绘图就得用 TC,很是无奈。
3. 还有计算机图形学,这门课程的重点是绘图算法,而不是 Windows 编程。所以,许多老师不得不用 TC 教学,因为 Windows 绘图太复杂了,会偏离教学的重点。新的图形学的书有不少是用的OpenGL,可是门槛依然很高。
所以,我想给大家一个更好的学习平台,就是 VC 方便的开发平台和 TC 简单的绘图功能,于是就有了这个库。如果您刚开始学 C 语言,或者您是一位教 C 语言的老师,再或者您在教计算机图形学,那么这个库一定会让您兴奋的。
另外:这个库不是为了给你直接移植BGI图形代码用的,直接移植多半是不能通过编译的。
如果真需要移植,请做相应的修改,或者使用高兼容性的ege老版本图形库
●本图形库的优点:
★绘图效率较好,特别在批量绘图模式下,640*480的半透明混合,可以直接使用 getpixel / putpixel 完成,
并且可以在大约1.5G CPU台式机器上达到60fps(要优化,否则一般的家用机再强也不行)
★灵活性更强,绘图可以直接针对一个PIMAGE,不必只能画在屏幕上
★功能更多,支持拉伸贴图,支持透明半透明贴图,支持图像模糊滤镜操作,
可以用对话框函数进行图形化的输入
★面向动画编程和游戏编程做了功能增强,可以方便地对帧率进行准确的控制
★附带简单的3D矢量运算函数和类,便于3D计算
★支持读写多种格式图片,支持读取bmp, jpg, png, gif,支持保存为bmp和png
★支持GUI模式编程
更新内容
新特性
库文件名统一为 graphics[64].lib 或 libgraphics[64].a
初始化图形对象或调用 resize 时,支持将图形对象的长或宽设置为 0
增加 INIT_UNICODE 初始化选项,此选项会创建 Unicode 窗口
增加 ege::seticon 函数,可通过资源 ID 设置窗口图标
增加 ege::ege_drawtext,支持绘制文字时使用 Alpha 通道混合,呈现半透明效果
增加 putpixel_withalpha 和 putpixel_withalpha_f 函数,支持带透明通道绘制像素点
允许在 initgraph 前调用 newimage 创建图形对象
支持加载资源中 PNG 格式图片
使 getkey 可返回 key_msg_char 类型的消息,现在 EGE 支持读取输入法输入了
允许在调用 initgraph 前设置窗口标题和图标
修复 BUG
修正 putimage 系列函数裁剪区计算错误的 BUG
修复了 initgraph 的内存泄漏情况
修复了 setactivepage() 和 setvisualpage() 无法使用的问题
修正 putpixel 等函数颜色格式错误
修正关于线型设置的 BUG
修正某些函数传入 NULL 时段错误的 BUG
其它
使用 CMake 作为编译系统
从 ege.h 中移出 EgeControlBase 的定义到 ege/egecontrolbase.h 中
默认字体设置为宋体
使用 PCIMAGE 作为 const IMAGE* 的别名,并作为某些函数的形参类型
生成的静态库文件中不再包含 gdiplus 静态库
改用误差更小的 Alpha 通道混合算法
增加之前缺少的键码
resize 不再用默认背景色清空图像
修改了 initgraph 的接口定义
评论(0)