找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 131|回复: 2

[源码] 【炫语言】组件自绘 - 圆形动态(GIF)头像

[复制链接]

54

主题

72

回帖

525

积分

版主

积分
525
发表于 2024-9-15 16:51:43 | 显示全部楼层 |阅读模式
本帖最后由 hxznhf 于 2024-9-15 16:53 编辑

每一个新手遇到的问题,都是下一个新人学习的教程!


今天的案例是: 绘制圆形动态(GIF)头像,涉及到GDI+绘制,和定时器的使用



我们先来定义一个GFI动态绘制类:


这个类主要是用于提前加载GIF图像,解析图像的帧数和每个GIF帧的时长,以及提供获取图像数据的功能。




然后我们创建一个GFI动态绘制类的实例变量,然后取每个帧平均时间作为定时器周期,意思是每次定时器事件触发,我们就绘制下一帧。

在窗口设计器中添加组件绘制和定时器事件,然后在组件绘制事件下面,我们用GDIP的纹理画刷来和圆形路径裁剪实现圆型的头像绘制。






细节问题:本来这里可以直接用之前创建的GP图像对象来绘制,但是我发现如果使用了纹理画刷,不能直接使用GIF图,只能每次都把GIF当前帧图像保存为非GIF格式,再给纹理画刷使用


以上代码写的很简单,主要是给新手入门学习,实际中的GIF图像每帧时间可能都不一样,我们需要更精确的定时器和判断当前帧。






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

0

主题

70

回帖

488

积分

中级会员

积分
488
发表于 2024-9-15 20:46:20 | 显示全部楼层
感谢分享学习了

0

主题

8

回帖

46

积分

新手上路

积分
46
QQ
发表于 2024-9-19 11:26:19 | 显示全部楼层
打不开,少模块
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|炫语言 | 炫彩界面库 | 用户所需, 正是我所做! ( 鄂ICP备2023014763号-1 )

GMT+8, 2024-11-21 20:56 , Processed in 0.074221 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表