You might want to save your bitmaps in .raw format from your chosen graphics editor instead of .bmp format, which is basically just the pixel data. It would be simple enough to load it in - just blockread for the required amount. The down side there, though, is that you have to have some way of knowing the width/height/bpp count for each pic, since it won't be stored in the .raw pic. You could either hard-code the sizes in your code or you could do some processing into a custom format (basically a tiny header containing ints for width,height,bpp, plus the raw data) and write a tiny off-line program to convert the data. I posted some RAW code elsewhere in these forums, so you might want to have a look at it (though I think it uses the VCL).

If you want, I could give you a work-in-progress .bmp loader that doesn't use the VCL (side note: I've only ever tested it with 24 bit pictures. Probably works for 32 bit pics too, but not any other depth). It'll take the bitmap and give you back an array of pixels to play around with.