there must be some trick... because photoshop can view the images... you see, we want to be able to see the whole image [zoomed out of course] and be able to see at 100% as well [obviously this would just be a small region of the image]... so i'm going to have to make a smaller image from the big image... i guess for 1/8 size i could just create a new image.... and use every 8th pixel value horizontally and vertically.... and then depending on zoom value... 1/4 size would be every 4th pixel or something... but it seems a bit inefficient to me to have to create a new bitmap from the large data every time you scroll/zoom.... i dunno.... i think of something hopefully...
This is just a guess...........
Got a 64Mb graphics card?
Correct me if I am wrong, but a 4000*4000 bmp with 32bit colour is just under 64Mb.
CreateBitmap() and CreateCompatibleBitmap() (which should be used to create colour bitmaps as it improves performance) are device dependant.
You could try CreateDIBSection() to create a device independent bitmap.
I've never done this, and don't have time to try right now, but have you ever blitted from multiple back buffers to a displayed DC that has a world transform applied to it, (in GM_ADVANCED mode), with the XFORM.eM11 and XFORM.eM22 matrix members set to a fractional value?
If that works, then the world transform would scale the various blits and produce a composite "zoomed out" view, and by changing the matrix values, progressive "zoom ins" could be acheived, all without ever loading the whole bitmap into a singe structure.
Sorry, we are in acceptance testing, again, so very busy...
>>but have you ever blitted from multiple back buffers to a displayed DC that has a world transform applied to it,
Have not done a lot with world transforms on multiple or composite images.
Should work, would probably have to use some overlap and experiment to get it aligned.
StretchBlt() will not work IMHO. The results will be poor (even with HALFTONE set) and the drawing slow. Best results would be achived with int multiples.
Use a image lib that has some good, fast image resizing functions for jpg's (ImageSource by Small Animals Software). I use this to resize the area of an image for zoom ect. My stuff is designed for 56k internet and so uses small compressed images.