Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Как уничтожить объект класса BitmapSource (https://forum.antichat.xyz/showthread.php?t=199593)

amorphius 26.04.2010 23:54

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

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

amorphius 27.04.2010 14:51

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


Время: 04:08