Вы можете использовать встроенные библиотеки .Net.
Используйте
sourceBitmap = (Bitmap)Image.FromStream(sourceFileStream, false, false);
Это остановит кеширование данных изображения в памяти. Вы можете создать новое целевое растровое изображение, чтобы нарисовать подраздел этого массивного изображения:
var output = new Bitmap(outputWidth, outputHeight);
var outputGraphics = Graphics.FromImage(output);
outputGraphics.DrawImage(sourceBitmap, destRect, srcRect, GraphicsUnit.Pixel);
using (var fs = File.OpenWrite(outputFilePath))
{
output.Save(fs, System.Drawing.Imaging.ImageFormat.Png);
}
Где destRect может быть полным размером outputImage или меньшей областью.