Я собираюсь объединить несколько файлов TIF с несколькими изображениями в один файл tiff с несколькими изображениями и иметь проблемы с удалением файлов tiff источника, поскольку класс Image продолжает удерживать дескриптор на них.
Я читаю изображение tiff через Image.FromFile:
Bitmap resultTiff = (Bitmap) Image.FromFile(strImageFile);
После этого я прочитал все другие tiff-изображения таким же образом и добавлю их к полученному tiff-изображению.
Когда я заканчиваю, я использую этот код для выпуска ссылок и сохранения результирующего файла:
ep.Param[0] = new EncoderParameter(enc, (long) EncoderValue.Flush);
resultTiff.SaveAdd(ep);
resultTiff.Dispose();
Теперь проблема в том, что дескриптор файлов по-прежнему существует (и, следовательно, файлы не могут быть удалены), если я не вызову GC.Collect()
после вызова resultTiff.Dispose()
.
Вы можете себе представить, что я не чувствую себя очень комфортно, позвонив в GC, так есть ли другой способ достичь этого?