My first thought isn't going to be easy. Here's a little description of the problem. Take a picture and look at it one raster line at a time. Load the pixel information, per pixel, into an array. Read out the array backwards to an empty image off screen. Repeat for each raster line. When the image is built, cache it and be ready to swap it out with it's mirror.
Once I got going, I could make any bmp I wanted to make. Skip past formatting sections and read the data inside the data section of the bmp file. I used this for a zooming feature I added into a VB program I wrote.