我有一个二进制 blob,并且我知道它携带位图图像数据,1 位深度。
但是,我不知道如何解码比特流;从截图来看从这里,这是一个名为液晶助手:
我需要能够指定字节方向、WxH 大小、字节顺序、像素/字节,以便完全解码未知的字节格式。(上述工具并不合适,因为它是 C 语言中的“将单色位图转换为数据数组的工具”)
我尝试了 Gimp File/Open Image(单击选择文件类型(自动检测),打开一个列表,选择扩展名为(数据)的“原始图像数据”,单击打开),然后出现此屏幕(“从原始数据加载图像”):
因此,我可以选择黑白 1 位、偏移、宽度、高度 - 但没有字节方向、字节顺序或像素/字节。
是否有一个命令行工具可以将二进制 blob 解码为 1 位位图,并将其转换为“普通” PNG(例如,灰度 PNG)?
我猜 ImageMagickconvert
可能可以做到这一点 - 但我根本找不到任何关于如何做到这一点的例子,而且我找不到它的众多选项中哪一个可能是合适的(如果有的话)。
答案1
... 可以将二进制 blob 解码为 1 位位图,并将其转换为“正常”的 .png 的工具
许多程序可以将不同位格式(位平面、通道平面、线性、YCbCr、1/2/3/4/8/16/32 位、块压缩……)的原始二进制数据可视化为图像,然后您可以将其复制并保存为您想要的任何图像格式,但我从未见过支持 1bpp、位方向(LSB 到 MSB 与 MSB 到 LSB)的程序,和还有方向(LTR vs TTB)。但是,一些可以让你更接近目标的方法包括:
... 一个命令行工具...
使用命令行的动机是什么?除非您要自动执行重复过程(例如应用程序构建或批量处理整个文件夹),否则 GUI 更容易以交互方式调整属性并立即查看结果,直到获得所需的视觉输出。
就像 Mark Setchell 所说的那样,如果你分享你的样本数据,有人可能会为了好玩而试图弄清楚它,甚至还有社区专注于此。