У меня есть несколько очень больших файлов, например, 320 МБ TIF-файла с 14000 х 9000 пикселей.
Операции, которые мне нужно выполнить, - это масштабирование изображений, чтобы получить меньшие версии, и разбиение изображения на плитки.
Мой код отлично работает с небольшими файлами, и я использую объекты .Net Bitmap
, но иногда я получаю исключения "Недостаточно памяти" для больших файлов.
Я пытался использовать библиотеки FreeImage FreeImageBitmap
, но у меня те же проблемы.
Я использую что-то вроде следующего для масштабирования изображения:
using (Graphics g = Graphics.FromImage((Image)result))
{
g.DrawImage(
source,
xOffset, yOffset,
source.Width * scale, source.Height * scale
);
}
В идеале я бы хотел, чтобы сторонняя библиотека выполняла всю сложную работу, но если у вас есть какие-либо советы или ресурсы с дополнительной информацией, я был бы признателен.