Bitmap Scaling

Hello, I’m building a CTextures class (C++)
I’m now looking for some informations/algo to perform a linear or other type of scaling on bitmap 32bpp. (The fastest one if it is possible)

My bitmap pixel are stocked into an array of RGBQUAD.

Any idea ?

if you are just displaying a scaled pic, Opengl will do it for you. Just make the quad with the texture on it bigger.


if you want to scale it in memory to save for later use, the simplest way is linear interpolation.

say you have a pic that is 50x50 and want to make it 75x75. 75 / 50 = 1.5. Which means you need to draw each pixel 1.5 times in both directions. Yes I know you cant draw half a pixel but you can have an extra variable that adds up the decimal part and when it goes over 1, draw another pixel.

This is NOT the prettiest way but its the easiest. Its what I used in the DOS days.

[This message has been edited by chxfryer (edited 12-26-2002).]