Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Как уничтожить объект класса BitmapSource


Автор: amorphius 26.4.2010, 22:50
В программе обрабатываю IPTC поля изображений. На этапе чтения метаинформации использую объект класса BitmapSource. Потом на записи новой метаинформации в тот же файл выскакивает исключение "Файл занят другим процессом". Я конечно еще отображал рисунок в pictureBox, но гугл подсказал, что эта проблема решается с использованием метода Clone() класса Image, чтобы оригинальный рисунок не использовался никаким процессом. Уверен что мешает класс BitmapSource, потому что при комментировании данной строки новая метаинформация успешно пишется в файл. Никаких функций вроде Dispose() в класее BitmapSource я не нашел. Приравнивание к null тоже ничего не дало. 
Код

BitmapSource img = BitmapFrame.Create(new Uri(filename));

Автор: amorphius 27.4.2010, 13:50
тема закрыта, нужно было просто создавать не с помощью Uri, а создавать FileStream, а потом его закрывать

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)