Well, you can make things harder. Security through obscurity only stops the inexperienced...
Start by XORing each byte before you write it to file, and then when loading into your engine XOR each byte using the same value. You can get clever with this and change the XOR mask for each byte, up to a finite or infinite length.
eg. You could add 1 to each XOR mask, or you could use your own key. eg. first = 1, second = 32, third = 55, fourth = 99, and repeat. Another nice idea is to XOR an image against another image (taking size into account and wrapping back to pixel 0 in the source image if needed) Make it as simple or as complex as you like. Also also mentioned in here earlier, you can hash and cross check stuff. Have a file that contains the hashes / checksums of each image and disallow anything that fails the checks. You can even mix up you bitmaps, either on a pixel by pixel basis or a scanline by scanline basis. First scanline could be left to right (pixel order), next could be right to left, using a different XOR mask or some other obscuritity system.
If you delve into ASM you could make use of ROR & ROL to rotate the bits on some pixel / scanline combinations. You can store checksums within the pixel data itself by subtly changing the first / last pixels in a bitmap to contain a 'watermark'. When I refer to bitmap, I don't mean a .bmp file which contains a bitmap header, I am talking about the raw image surface data. Another nice trick could be to 'bolt on your images onto the end of another valid file format. You can hide images within another file format if you know where to hide it. I believe if you write a valid bitmap file, and append your encrypted image to the end of the file, it would show as a bitmap but contain your image. I have to be honest, I haven't tried a bitmap myself this way, but I can't see why it wouldn't work. It sure as hell would confuse people when they view it and it's a different image to what it really contains...