ucgui图片优化代码

在ucgui框架下开发嵌入式UI时,遇到因大量bmp图片导致的bin文件过大问题。通过将图片保存到Flash、裁剪图片以及优化单个图片代码,成功减少了1.2M到0.3M的体积。具体措施包括:对开机动画图片进行裁剪,利用图片规律减少静态logo的存储空间,实现代码中仅保存图片一半并用算法生成另一半。
摘要由CSDN通过智能技术生成

      近期做一个嵌入式UI界面,框架使用ucgui。做的差不多了,发现整个模块生成的bin文件过大,烧不到单板里去,头都大了。

经调试发现,是因为ucgui里使用的bmp图片太多了,一张图片都有几十K那么多,这可比上万行代码量了。找到了原因,那就想

办法解决吧。

     一,使用Flash方案。有同事提醒说,要不把图片都保存到Flash里,代码执行时再去flash里去读。考虑到一个模块的代码和

资源却要分开,放到不同的地方,感觉不十分合理,那有没有更好的办法呢?

 

    二,优化图片大小。设备开机要播放一个动画,一共九张图片,那能不能对每张图片进行裁剪,尽量使用每张图片达到最小化呢?

经过仔细分析,切图,最后效果还真不多,九张图片原始大小1.2M,最后减小到了0.3M。还是很有效果的。

 

    三,优化图片代码。设备启动时,bom里要播放一张静态logo,这张logo却消耗了20K的空间。那怎么对单个图片进行优化呢。

由于我们的logo是很有规律的,下半部分是上半部分旋转180的效果,那能不能图片的代码只保存一半,另一半通过算法来计算得出

呢?经过尝试终得所愿。代码如下,供大家分享。

 

//上半部分图片代码略

 

//下半部分数组声明

static unsigned short aclogo8_down[5000];

GUI_CONST_STORAGE GUI_BITMAP bmlogo8_down = {

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值