int xsize, ysize; //старые размеры
int new_xsize, new_ysize; //новые размеры
original_image, scaled_image; //картинка и буфер
float dx = (float)xsize/(float)new_xsize; //Вычисление шага по X
float dy = (float)ysize/(float)new_ysize; //Вычисление шага по Y
int new_x = 0, new_y = 0;
int c;
for(float y = 0.0; y < ysize; y += dy, ++new_y)
{
for(float x = 0.0; x < xsize; x += dx, ++new_x)
{
c = getpixel(original_image, int(x+0.5), int(y+0.5));
putpixel(scaled_image, new_x, new_y, c);
}
new_x = 0;
}
Написал: Ваяся Пупкин :)