EGE (Easy Graphics Engine) 是一个 Windows 下的简易绘图库,提供类似 BGI (graphics.h) 的接口,专为 C/C++ 初学者设计。
- 简单易用 — 接口设计直观,与 TC 的
graphics.h高度兼容,初学者也能快速上手 - 高效渲染 — 窗口锁定绘图模式下,640×480 的半透明混合可达 60 FPS
- 功能丰富 — 支持拉伸贴图、图片旋转、透明/半透明贴图、图像滤镜、多种图片格式(BMP/JPG/PNG/GIF 等)
- 灵活绘图 — 绘图可直接针对图像进行,不限于屏幕
- 免费开源 — 采用 LGPL 2.1 许可证,欢迎参与开发
#include <graphics.h>
int main()
{
initgraph(640, 480); // 初始化窗口
circle(200, 200, 100); // 画圆:圆心 (200, 200),半径 100
getch(); // 等待按键
closegraph(); // 关闭图形窗口
return 0;
}EGE 模拟了绝大多数 BGI 绘图函数,基本绘图函数的使用方式与 Turbo C / Borland C 基本一致。
EGE 支持以下 开发工具/编译器:
| 编译器/IDE | 版本支持 | 备注 |
|---|---|---|
| Visual Studio | 2017 ~ 2026 | ✅ 推荐,支持 C++17 全部特性 强烈建议使用最新版本 (2026) |
| CLion | 支持 | ✅ 推荐 可配合 XEGE 插件 迅速上手 |
| VS Code | 支持 | ✅ 推荐 可配合 EGE 插件 迅速上手 |
| 小熊猫 C++ | 支持 | ✅ 推荐 已内置 EGE, 下载即可用 |
| Code::Blocks | 支持 | 已测试版本: 25.03 (最新) |
| MinGW / MinGW-w64 | 支持 | ✅ 支持, SDK 发布时会基于最新版本进行测试 |
| 老版本 Visual Studio | 2010 ~ 2015 | |
| Visual C++ 6.0 | aka vc6.0 | |
| Dev-C++ | 支持 | 已测试版本: 5.11 (最新) |
| Eclipse for C/C++、 C-Free 等 | 支持 |
- API 文档:API 参考
- 详细帮助:
man目录下的index.htm
EGE 提供官方 IDE 插件,让项目配置更加简单:
| IDE | 插件 | 安装方式 | 功能 |
|---|---|---|---|
| CLion | XEGE Creator | Settings → Plugins → Marketplace 搜索 "XEGE Creator" |
一键创建项目、CMake 自动配置、多平台支持 |
| VS Code | EGE | 扩展面板搜索 "ege" | 一键创建项目、单文件编译运行、跨平台支持 |
- 安装插件后,点击
File → New → Project... - 在左侧项目类型列表中选择 EGE
- 配置项目名称和位置,选择是否使用源码模式
- 点击
Create即可生成可运行的 EGE 项目
- 安装插件后,打开命令面板(
Ctrl+Shift+P) - 输入
EGE:查看可用命令:EGE: 在当前工作区设置 ege 项目- 使用预编译库创建项目EGE: 在当前工作区设置带有 EGE 源代码的 ege 项目- 使用源码创建项目EGE: 构建并运行当前文件- 快速编译运行单个 cpp 文件
- 插件支持 Windows、macOS(需 mingw-w64 + wine)和 Linux
更多详情请访问插件主页:CLion 插件 | VS Code 插件
许多学习编程的人从 C 语言开始入门,但现有的教学环境存在一些问题:
- Turbo C 环境过时 — DOS 环境与现代操作系统兼容性差,可用颜色有限,编辑功能不便
- Windows 图形编程门槛高 — 在 Windows 编程中绘制简单图形需要处理窗口类、消息循环等复杂概念
- 图形学教学偏离重点 — 计算机图形学课程应聚焦于算法而非平台编程,但 Windows GDI 或 OpenGL 的门槛较高
EGE 的解决方案:无论您是 C 语言初学者、编程教师,还是计算机图形学讲师,EGE 都能让您专注于算法和逻辑,而非底层平台细节。
| 特点 | 说明 |
|---|---|
| 零依赖轻量级 | 使用 stb_image 和 sdefl/sinfl 替代 libpng/zlib,无外部依赖,单库即可使用 |
| 直接像素访问 | 提供 getbuffer 接口直接访问图像像素数据,实现高效的软件渲染和图像处理 |
| 抗锯齿支持 | 内置 GDI+ 支持,ege_ 系列函数提供高质量抗锯齿绘图 |
| 预乘 Alpha 优化 | 默认使用 PRGB32 (预乘 Alpha) 格式,配合 AlphaBlend 实现 GPU 加速混合 |
| 多图像格式支持 | 支持 PNG, JPEG, BMP, GIF, TGA, PSD, HDR 等常见图像格式 |
| 灵活的图像操作 | 支持图像旋转、缩放、透明贴图、Alpha 滤镜等高级变换 |
| 坐标变换系统 | 提供 ege_transform_* 系列函数,支持平移、旋转、缩放等矩阵变换 |
| 完善的输入处理 | 支持键盘、鼠标(含双击、扩展键)、输入法等多种输入方式 |
| 相机捕获支持 | 基于 ccap 提供摄像头采集功能 (C++17) |
| 跨编译器兼容 | 从 VS2017 到 VS2026,MinGW 全系列均可编译,兼容性极强 |
EGE 使用 CMake 作为构建系统。
详细编译步骤请参阅 编译指南。
| 渠道 | 链接 |
|---|---|
| 官方网站 | https://xege.org |
| 源码仓库 | https://github.com/x-ege/xege |
| 社区论坛 | EGE Club |
| 百度贴吧 | ege、ege娘 |
| 教程博客 | EGE 教程&介绍 (作者:依稀) |
| 邮箱 | [email protected] |
| QQ 群 | 1060223135 |
原作者信息与历史链接(点击展开)
EGE 图形库最初由 misakamm 创建。以下为原作者的相关链接(部分已失效):
| 资源 | 链接 | 状态 |
|---|---|---|
| 原仓库 1 | http://misakamm.github.com/xege | 已停止更新 |
| 原仓库 2 | http://misakamm.bitbucket.org/index.htm | 已停止更新 |
| Google+ 社区 | https://plus.google.com/communities/103680008540979677071 | 已关闭 |
| 原作者博客 | https://misakamm.com | 无法访问 |
| 原作者邮箱 | [email protected] | 无法联系 |
目前项目由社区维护,主仓库位于 https://github.com/x-ege/xege。