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