codeblock图形界面编程(六)基于ege库的进阶绘图

19 篇文章 0 订阅
10 篇文章 2 订阅

codeblock图形界面编程(六)基于ege库的进阶绘图

窗口管理

1、cleardevice(); //清除屏幕所有画图
2、setcaption(“string”); //设置窗口的标题,string为要显示的标题。
3、int getwidth(); //获取当前窗口的宽度
4、int getheight(); //获取当前窗口的高度

图形文件显示函数

EGE图形库中,有关图像显示的函数有:

(1) 普通绘图:

    	void putimage(
	    int dstX,              // 绘制位置的 x 坐标
	    int dstY,              // 绘制位置的 y 坐标
	    IMAGE *pSrcImg,        // 要绘制的 IMAGE 对象指针
	    DWORD dwRop = SRCCOPY  // 三元光栅操作码(详见备注)
	);

缩放绘图:指定宽高和起始位置

	void putimage(
	    int dstX,              // 绘制位置的 x 坐标
	    int dstY,              // 绘制位置的 y 坐标
	    int dstWidth,          // 绘制的宽度
	    int dstHeight,         // 绘制的高度
	    IMAGE *pSrcImg,        // 要绘制的 IMAGE 对象指针
	    int srcX,              // 绘制内容在 IMAGE 对象中的左上角 x 坐标
	    int srcY,              // 绘制内容在 IMAGE 对象中的左上角 y 坐标
	    DWORD dwRop = SRCCOPY  // 三元光栅操作码(详见备注)
	);

(2)透明绘图

        putimage_withalpha(NULL,img,x,y,0,0,w,h); 
        putimage_alphablend() 两张图片半透明混合
        putimage_transparent()
        putimage_alphatransparent()

(3)旋转绘图

        putimage_rotate()
        putimage_rotatezoom()

EGE中的表示图像对象的类为 IMAGE, 而PIMAGE 为 指向 IMAGE 对象的指针,即 IMAGE*, 定义如下:

	typedef IMAGE* PIMAGE;

读取并显示图片

正常显示

实现代码如下:

	 PIMAGE img[5];
	 img=newimage();
	 getimage(img[0], "1.jpg");
	 putimage(0,0, img[0]);

运行显示效果如下:

在这里插入图片描述

透明显示

我们把putimage(0,0, img[0]);更换为:

putimage_alphablend(NULL, img[0], 0, 0, 0x50);

显示效果如下:

在这里插入图片描述
可见,图像已经明显变暗了。

旋转显示

这里我们用到了EGE库的putimage_rotate 函数,用于绘制旋转后的图像,
其 8 个参数分别为:

目标图像指针,若为 NULL,则是窗口。
绘制图像指针。
绘制图像左上角 x x x 坐标。
绘制图像左上角 y y y 坐标。
旋转中心在绘制图像坐标系的 x x x 坐标。
旋转中心在绘制图像坐标系的 y y y 坐标。
旋转角度(弧度),逆时针为正。
是否允许透明通道。

实现代码如下:

	putimage_rotate(NULL, img[0], 0,200,0.0, 0,1, 0);

运行后,显示效果如下:

在这里插入图片描述

总结

EGE图形库具有简单,友好,容易上手,免费开源的特点,而且因为接口意义直观,即使是之前完全没有接触过图形编程的,也能迅速学会基本的绘图。并且支持拉伸贴图、图片旋转、透明半透明贴图和支持图像模糊滤镜操作,可以读取常见的流行的图片格式(bmp/jpg/png),也可以保存图片为bmp或png格式,不失为一款优秀的图形库。

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cyjbj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值