我想用每行上的像素数据将BMP转换为TXT。
以下是我要提取的内容:http://i.imgur.com/rmdvf8v.jpg
有一种简单的方法吗?我一直在使用颜色选择器,需要提取一系列1x100像素的图像。
我将其导入电子表格,每个图像都作为带有十六进制数据的单元格列。
答案 0 :(得分:1)
我看到两个选项:
考虑提取他们使用jpg库编写代码 - 它通常安装在linux中(需要安装libjpeg-devel软件包 - 在Fedora上这里称为libjpeg-turbo-devel)。
将jpeg加载到 gimp ,然后将其导出到.ppm file。 gimp将允许您将其导出为二进制或ascii文件。在第一种情况下,您可以使用与od -x
答案 1 :(得分:1)
嘿,不确定这是否是您仍在尝试做的事情,但是:
我做了类似的事情,我需要从.bmp中提取像素数据,以便通过FPGA生成用于VGA接口的.mif或.hex文件。
现在我的进程到目前为止首先将我的.bmp重新保存为RGB16分辨率,这只是个人偏好,因为我的VGA驱动程序设置为采用#0000四字符十六进制值(Alpha,Red,Green) ,蓝色)。
无论如何,在设置图像后,我在gimp中打开它,然后以ASCII格式导出为.ppm。这给了我每个像素的十进制值,但我的计划是写一个简单的脚本将它们转换为十六进制。不过我会提到一件事,我还没有证实这一点,但我知道bmp文件是从左到右从下到上。是否会在像素数据中反映这一点,但是如果它有两个选项:
1)再次编写一个脚本来重新排序数据(繁琐)
2)在油漆区翻转图像(更简单)
希望这会有所帮助:)