Вычислить новые ширину и высоту (если у вас есть коэффициенты масштабирования)
float newWidth = horizontalScalingFactor * (float) originalBitmap->GetWidth();
float newHeight = verticalScalingFactor * (float) originalBitmap->GetHeight();
или коэффициенты масштабирования, если известны новые размеры
float horizontalScalingFactor = (float) newWidth / (float) originalBitmap->GetWidth();
float verticalScalingFactor = (float) newHeight / (float) originalBitmap->GetHeight();
Создать новое пустое растровое изображение с достаточным пространством для масштабированного изображения
Image* img = new Bitmap((int) newWidth, (int) newHeight);
Создание новой графики для рисования на созданном растровом изображении:
Graphics g(img);
Примените масштабное преобразование к Графике и нарисуйте изображение
g.ScaleTransform(horizontalScalingFactor, verticalScalingFactor);
g.DrawImage(originalBitmap, 0, 0);
img
теперь еще одно растровое изображение с уменьшенной версией исходного изображения.