Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Embed image in code, without using resource section or external images

I'm looking for a way to embed an image in a library (Windows-only). I don't want to go the 'traditional' way of putting it in the resources (because of special circumstances that make it not so convenient to mess around with the resource handle.

Ideally, there would be something like xpm files: a 'text' representation of an image that is put in a c array and that some code converts into a bitmap in memory, which can then somehow be loaded into an HIMAGE or an HICON. The images I want to embed are 32-bit bitmaps (bmp). Any ideas? I'm using MFC so an MFC library would be fine, but of course I can use a library that doesn't use MFC too. Thanks.

like image 440
Roel Avatar asked Dec 13 '22 06:12

Roel


2 Answers

Google for a bin2c utility (something like http://stud3.tuwien.ac.at/~e0025274/bin2c/bin2c.c). It takes a file's binary representation and spits out a C source file that includes an array of bytes initialized to that data.

Just link the file in and you have your image sitting in a chunk of memory.

Using this kind of tool is really common on embedded systems where such things as 'resources' and even files might not exist.

like image 189
Michael Burr Avatar answered Mar 09 '23 01:03

Michael Burr


The Gimp can export to C files. I think that would be the easiest way to do it.

like image 33
Leon Timmermans Avatar answered Mar 09 '23 01:03

Leon Timmermans