|
分享源码
界面截图: |
- |
是否带模块: |
调用了模块 |
备注说明: |
- |
本帖最后由 暮烟疏雨 于 2024-7-19 15:16 编辑
也许大家都曾遇上这个问题
在使用EXUI的时候,想要修改窗口的底图
当然是直接了当的在皮肤编辑器里面弄底图
可是若我们想要读取本地图片文件(使用图片的字节集)来设置底图
又该怎么办呢?
我在论坛寻找到的平替办法,都是在底部加个图片框,让图片框来当底图···
但是这样终归有些不太完美,于是我思考怎么修改底图
EXUI的皮肤编辑器,生成出来的文件是以.SkinEx为后缀的
EXUI可以直接进行读取这个字节集,然后进行设置底图
嘿,似乎还是不太对,我们需要的是使用图片的字节集,而不是.SkinEx的字节集
(例如:用户想自定义背景图,你总不能让用户生成一个.SkinEx吧?)
可是底图明明就是存放在这个.SkinEx文件里面的
于是我研究了一下.SkinEx这个文件
以下讲解制作过程,很简单···
我先是使用EXUI的皮肤编辑器,用a.jpg当作底图,然后生成了一个a.SkinEx文件
我发现a.SkinEx里面,直接有一段字节集就是a.jpg的字节集!
既然如此,想要修改底图,那么直接将a.SkinEx文件的那一段字节集(即a.jpg的字节集)替换成其他图片的字节集(如b.jpg)不就好了?
可是我直接进行替换之后,用EXUI的皮肤编辑器进行读取,却发现还是不能正常读取···
于是我又想,EXUI的皮肤编辑器,读取.SkinEx文件,一定是要先发现图片的位置,然后再读取
那么图片的位置又如何决定呢?
这自然而然的就能联想到图片的字节集长度大小(然而其实想了很久···甚至想到了文本等乱七八糟的···)
于是我试探性的在a.SkinEx文件里面寻找一下字节集(此次寻找的字节集为a.jpg的字节集长度,将这个长度弄到字节集())
嘿,还真能搜到(我在a.SkinEx里面搜到的位置是531)
此时,我们发现,在a.SkinEx文件里面
存放了a.jpg的文件长度,和a.jpg的字节集
那么,我们只需要替换掉a.jpg的文件长度和a.jpg的字节集不就好了?
测试一下!
Nice!成功了!可以正常读取!!!
相信大家只要阅读了制作过程,都可以写出来这段代码
我写的代码,如果不弄变量,不考虑可读性的话,只有一两行···
附件为源码
调用了精易模块,但仅使用字节集_子替换()函数,此函数功能可用核心支持库自己做到,但是我懒···
源码如下
aa.e
(996.86 KB, 下载次数: 11)
|
评分
-
查看全部评分
|