如何将图像转换为WORD(uint16)数组?

时间:2012-04-11 09:58:40

标签: c image

我的目录中有一些图像(.bmp,.png,.jpg)。我想将此图像转换为WORD数组,以便以565格式(16位像素)在LCD中显示此图像。如何将图像转换为WORD数组?请帮忙。是否有任何实用程序只是将图像转换为二进制?或者请在Windows C / CPP中提供一些代码以将其转换为二进制文件?

3 个答案:

答案 0 :(得分:1)

这很大程度上取决于输入图像的确切格式。

只是将“转换为单词”并不能真正表达您想要做的事情,这可能更像是“将位图图像转换为行主格式的RGB565像素数组”。

您应该查看允许您加载位图图像的图像处理库,并读出每个像素的值。

您可以直接转换为RGB565,不应该与其他任何位图格式相比太难。

请注意,有索引和“真彩色”位图格式,听起来你需要处理这两种格式。如果幸运的话,每种格式的图书馆都会抽象出来,例如一个uint32 read_pixel_as_rgb888()函数。

另请注意,许多位图图像格式都非常关注压缩,这就是为什么只读取文件的位数不够,需要根据格式对数据进行解压缩。这非常复杂,这就是为什么预先编写的库是唯一合理的选择。

对于PNG,请查看libpng,查找libjpeg的JPEG代码。第二个想法,这些库可能有点太低级了,也许你应该看一下像SDL_Image这样的东西。

答案 1 :(得分:0)

您可以尝试使用CImg打开图片文件 - http://cimg.sourceforge.net/

答案 2 :(得分:-1)

您可以使用OCR技术将图像转换为文本格式(如下所示:http://products.softsolutionslimited.com/img2ocr/category/image_to_word.htm),然后处理结果文本。或者,如果您想直接加载图像,请在灰度模式下使用freeimage.dll http://freeimage.sourceforge.net/sourcecode.html库,然后使黑色像素发光。