|
|
|
|
Автор:
|
Екатерина
|
|
Тема:
|
Проблема с GdipSaveImageToFile и удалением файлов
|
|
Дата:
|
7/22/2004 8:26:00 AM
|
Я сканирую изображение. Нужно сохранить в файл jpeg не готовый объект Image, а IntPtr.( Сканер получает изображение в таком формате)
Этот объект IntPtr помещаю во временный файл с помощью метода:
GdipSaveImageToFile( IntPTR image, string filename, ref clsid, IntPtr.Zero ).
Это вызов dll. я не знаю как он работает: закрывает после записи файл или нет... Если кто-нибудь знает подскажите, пожалуйста.
[DllImport("gdiplus.dll", ExactSpelling=true, CharSet=CharSet.Unicode)]internal static extern int GdipSaveImageToFile( IntPtr image, string filename, [In] ref Guid clsid, IntPtr encparams );
Этот метод вызывается в одном классе.
Другой класс считывает картинку из временного файла:
image = new Bitmap("d~"+ this.Text+".jpg");
pictureEdit1.Image = (Image)image;
По завершении работы программы необходимо удалить временные файлы. Делаю:
protected override void Dispose( bool disposing )
{
if( disposing )
{
pictureEdit1.Dispose();
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
try
{
foreach(string NameFile in Directory.GetFiles(GetCurrent(), "d~*"))
{
File.Delete(NameFile);
}
}
catch(Exception My)
{
MessageBox.Show(My.ToString());
}
}
Возникает исключение: файл занят другим процессом. Неужели функция GdipSaveImageToFile не закрыла файл после записи? Или ошибка в другом? ПОЖАЛУЙСТА, подскажите!!
|
|
|
|