Я пытаюсь обработать многостраничные файлы TIF в функции Azure. Функция запускается при изменении хранилища BLOB-объектов. Когда триггер запускается, он вызывает это:
function loadFile(Stream mpTif);
Bitmap pageOnes = (Bitmap)Image.FromStream(mpTif);
mpTif
- это поток хранилища больших двоичных объектов, который передается непосредственно в функцию Azure.
Моя функция отлично работает с небольшими многостраничными файлами TIF, но когда я помещаю очень большой файл в хранилище BLOB-объектов, он не работает Image.FromStream
с ошибкой:
Параметр недействителен
Я запускаю это на своем компьютере, используя локальный функциональный хост. Странно то, что у меня есть консольное приложение, которое запускается с использованием того же кода, но вместо этого вызывает его с помощью MemoryStream:
MemoryStream data = new MemoryStream(File.ReadAllBytes("big.tif"));
loadFile(data);
Это прекрасно работает. Наступил ли какой-то предел памяти в Функциях Azure? Подозрительно много времени проходит, прежде чем я обнаруживаю эту ошибку, что заставляет меня думать, что это проблема OOM. Этот файл TIF очень большой (80 МБ и 10 000 страниц).