返回新闻列表
NX二次开发
2026-03-23 作者:Super

NX二次开发提取NX自带位图

       在NX二次开发中有时候想直接使用NX自带的图标资源,但是找图标是一个挺痛苦的事儿,所以就想到了有没有什么途径能直接提取出这些图标

找到NX的安装目录如XXX\UGII\bitmaps看到其压缩之后的bma文件,有一个特别小的high_quality.2x.bma,这个文件成了突破口

使用一些二进制文件查看工具打开这个文件,折腾分析了一通之后,大致找到如下的规律,感觉是靠谱的,开始来尝试来解析这个文件。

       然后按这个规则解析之后把流写入文件,发现并不是位图文件,使用调试工具跟踪了一下NX的 libugui.dll中的?UGUI_load_high_quality_bitmap@@YA_NPEBDPEAHPEAPEAE@Z 接口,

发现它里面对这个流使用了解压处理,NX使用的是zlib这个库,OK到这里一切都水到渠成了。

最终提取到的文件如下,然后就可以获取其名称,在NX的界面中使用了。

 

知道了bma的之个文件结构之后,我们也可以反过来,按这个格式来压缩我们的图片资源,减少我们二次开发插件文件夹中的文件数量,方便管理

同时NX对于bma这种打包的文件设计也值的借鉴,可以用于一些我们其它资源的打包和加密。

想了解更多信息?

联系我们的专业团队,获取更多信息

联系我们