在代码中嵌入图像,而不使用资源部分或外部图像

Roe*_*oel 3 c++ mfc visual-c++

我正在寻找一种在图书馆中嵌入图像的方法(仅限Windows).我不想采用"传统"方式将其放入资源中(因为特殊情况使得处理资源句柄变得不那么方便).

理想情况下,会有类似xpm文件的东西:放在交流数组中的图像的"文本"表示,并且某些代码会转换为内存中的位图,然后可以某种方式将其加载到HIMAGE或HICON中.我想嵌入的图像是32位位图(bmp).有任何想法吗?我正在使用MFC,因此MFC库可以,但我当然可以使用不使用MFC的库.谢谢.

Mic*_*urr 7

谷歌用于bin2c实用程序(类似于http://stud3.tuwien.ac.at/~e0025274/bin2c/bin2c.c).它接受文件的二进制表示并吐出一个C源文件,该文件包含初始化为该数据的字节数组.

只需链接文件,您就可以将图像放在一块内存中.

在嵌入式系统中使用这种工具非常常见,因为"资源"甚至文件可能不存在.

  • 我建议使用 `xxd -i myimage.png > myimage.h` 来代替。请注意,“xdd”是一个 Linux 实用程序。 (2认同)

Leo*_*ans 6

Gimp可以导出到 C 文件。我认为这将是最简单的方法。