找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 13769|回复: 19

EV3图片批量转换工具,附源码

  [复制链接]
发表于 2018-12-26 23:00:36 | 显示全部楼层 |阅读模式
本帖最后由 蒙德·究史尼 于 2018-12-26 23:10 编辑

11月的时候有人问EV3怎么播放视频,我说只要按固定间隔显示图片序列就行了。那么既然EV3只能显示rgf格式图片,要显示图片序列的话就得用EV3编程软件里带的Image Editor,一张一张地转换。如果图片很多很多的话,岂不是很辛苦?因此,我决定做一个能批量转换图片的程序 11.jpg
因为bmp图片文件的结构比png和jpg简单,所以我选择bmp文件作为转换的来源




先研究一下bmp图片和rgf图片的结构

rgf图片的结构:
编程软件里Image Editor生成的图片分辨率是176x128(EV3屏幕有178x128分辨率所以Image Editor生成的图片占不满屏幕,乐高这么做的原因可能是为了让用户好编辑,因为176正好是16的倍数),大小为2818字节,文件头10110000 10000000共两个字节,22个字节为一行,第三个字节0x00000002开始正文,一直写到0x00000b01结束,每个字节的比特顺序和像素顺序相反,1表示黑色,0表示白色
乐高编程软件里自带的图片分辨率是178x128(这个把屏幕占满了),大小为2946字节,文件头10110010 10000000共两个字节(和Image Editor生成的文件头不一样)
我做的转换器生成的图片是前者(176x128分辨率)


bmp文件的结构:
这里的bmp文件指的是用来转换的黑白双色bmp文件,使用黑白双色调色板,分辨率是126x128,大小为3134字节,一行占24个字节,24字节为一组,第一个字节的第一个比特是一行像素的开头,每一组第22个字节的第8个比特是一行像素的末尾,第23和第24个字节无意义(不是完全没有意义,只是我们不需要它),字节顺序与像素顺序相同,第一个像素从0x00000c56的第一个比特开始,依次向右写,1表示白色,0表示黑色,0x0000003e到0x00000055是最后一行



在已知文件结构的基础上,先写入rgf文件头,再从文件里取出要转换的像素数据,然后按特定的顺序写入像素,就完成了转换。按照以上原理,我制作了这个工具





如何使用本工具:
1. 新建一个文件夹,把要转换的bmp文件全部放进去
2. 把bmp_to_rgf.exe也放进这个文件夹

02.jpg
3. 双击运行bmp_to_rgf.exe
4. 屏幕上会显示运行结果,按任意键退出
03.jpg

注意:
1. bmp的文件分辨率必须是176x128,必须使用黑白双色调色板,大小必须是3134字节。彩色图片、灰度图片和使用彩色调色板的黑白图片都会导致失败。生成黑白双色调色板的bmp文件的方法见下文

01.jpg
2. 运行时请确保你当前的硬盘分区有至少20MB的可用空间





如何批量生成黑白双色调色板的图片:
方法有很多,这里我只介绍我目前使用的方法
注意:进行下面的步骤之前,请先确保所有要处理的图片是176x128分辨率。能批量裁剪图片的软件俯拾皆是,光影魔术手、美图秀秀、格式工厂……具体方法请自行百度

1. 下载安装Snagit,这个软件是收费的所以我选择po jie版,版本号11.2.1.72
po jie版下载地址:http://www.huacolor.com/soft/78262.html
2. 新建一个文件夹,把要转换的图片都放进去(常见的图片格式都可以)

04.jpg
3. 选中这些文件,然后在任意一个文件上右键>Snagit>Batch Convert Images
05.jpg
4. 点下一步
06.jpg
5. 下拉菜单里选择颜色模式>单色,然后在弹出的对话框中拖动滑块选择一个你觉得合适的白色强度阈值,然后点确定
07.jpg
6. 点下一步
7. 选择一个输出目录
8. 文件格式选择“BMP - Windows 位图 (*.bmp)”

08.jpg
9. 点右边的选项,弹出窗口里选择“2色(1-位)”,然后点确定
09.jpg
10. 点下一步
11. 点完成

10.jpg






程序+源码下载:
这个工具是用C语言写的。因为用了conio.h和_finddata_t所以只能在Windows上运行。exe保证无病毒。不信任我的话就自己编译吧。

不收乐币
bmp_to_rgf.zip (35.93 KB, 下载次数: 201)


评分

参与人数 8乐币 +550 人气 +33 收起 理由
momo1014 + 20 + 1 中文乐高有你更精彩:)
hrz + 20 + 1 中文乐高有你更精彩:)
alex_cn + 10 中文乐高有你更给力:)
韦爵爷 + 100 支持原创!
xd62215135 + 10 中文乐高有你更给力:)

查看全部评分

如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
 楼主| 发表于 2018-12-26 23:07:42 | 显示全部楼层
本帖最后由 蒙德·究史尼 于 2018-12-26 23:09 编辑

这个工具的诞生离不开 @张家港初号机 的优秀创意
感谢你的辛苦付出
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2018-12-27 03:08:51 | 显示全部楼层
我给您献上膝盖!!!!!!!真的厉害!!!!!!我想有了这个工具,以后乐高迷们会有更多优秀的创意展现出来!
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2018-12-27 08:15:00 | 显示全部楼层
如果以后大家都拿EV3看视频  就都怪你
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2018-12-27 09:07:47 | 显示全部楼层
青岛张纯胜 发表于 2018-12-27 08:15
如果以后大家都拿EV3看视频  就都怪你

怪我咯。我还打算做一个完整的教程
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2018-12-27 09:21:06 | 显示全部楼层
谢谢大佬
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2018-12-27 09:40:32 | 显示全部楼层
本帖最后由 张家港初号机 于 2018-12-27 09:42 编辑

为什么我现在评论都要审核,昨晚发的评论难道没通过吗?
想传图片传不了,想发帖发不了,发评论全没过审核,崩溃。。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2018-12-27 11:10:37 | 显示全部楼层
用PS做个动作
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2018-12-27 14:36:02 | 显示全部楼层
我能对大佬说666吗?
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2018-12-27 17:12:31 | 显示全部楼层
感谢大佬
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2018-12-27 20:22:33 | 显示全部楼层
十分感谢
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2018-12-28 00:24:16 | 显示全部楼层
围观大佬 这个太厉害了
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2018-12-29 17:51:20 | 显示全部楼层
腻害了 先保存
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2018-12-30 10:07:03 | 显示全部楼层
666哇!
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2018-12-31 19:16:56 | 显示全部楼层
这么好的贴这么点人
话说张家啥啥啥的自己处理了1000多张rgf
早点出来就好了
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

手机版|中文乐高 ( 桂ICP备13001575号-7 )

GMT+8, 2024-12-22 18:21 , Processed in 0.141442 second(s), 21 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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