字符转BGRA raw数据
使用gimp软件导出为raw图像数据
再转换为16进制格式
hexdump -v -e '10/1 "0x%02x, "' -e '"\n"' pic+.data
定制hexdump的打印输出格式
背景
hexdump是Linux系统下一个以十六进制或ASCII形式输出文件内容的工具,通常-b -c -C -d等选项提供的打印格式就够用了,但有时板卡输出的数据格式比较特殊,想用文本比较工具(例如kidff3)比对的话,就需要将hexdump的输出指定成匹配的格式
自定义格式串
通常使用-e选项传递自定义格式串。
简介
hexdump的自定义格式串由任意多个格式单元组成
每个格式单元由3个基本元素组成:
迭代数
字节数
模式串
模式串
这个是最好理解的,跟printf的模式串非常像,%d表示打印十进制整数,%x表示打印十六进制整数,等等。
字节数
模式串对应的字节数,例如%c对应1,%08x对应4
迭代数
这个比较难理解,其实就是代表模式串重复多少次
注意
每个格式单元前都要有-e选项,当你的输出格式比较复杂,一个格式单元hold不住时,可以将多个格式单元组合起来
格式示例
hexdump -v -e '4/4 "%08X "' -e '"\n"' bin.o
-v选项表示不精简重复内容
第一个-e表示4个迭代、每次迭代解析4字节内容、每个4字节按模式串"%08X "打印
第二个-e没有迭代数也没有字节数,仅仅是个模式串"\n"来让每个迭代都输出换行
bin.o是输入文件,一般是导出的二进制数据
上面命令的输出:
464C457F 00010102 00000000 00000000
003E0001 00000001 00000000 00000000
00000000 00000000 0000D2D0 00000000
00000000 00000040 00400000 0025002A
hexdump -v -e '10/1 "0x%02x, "' -e '"\n"' pic+.data
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,