Как загрузить анимированный GIF-файл в Picturebox, а затем удалить оригинальный файл? - PullRequest
0 голосов
/ 15 января 2012

Интересно, как загрузить анимированный GIF-файл в Picturebox и чем удалить исходный файл? Я знаю, как этого добиться с помощью простого растрового изображения (http://support.microsoft.com/kb/814675/en-us?fr=1), но как это сделать с помощью перемещения GIF? И если для этого есть какой-то специальный класс или методы, есть ли способ определить, является ли временный файл (из которого я загружаю картинку) простым растровым изображением или движущимся gif?

1 Ответ

0 голосов
/ 16 января 2012

В конце концов, я использовал решение, основанное на предложении Ганса.Сначала я загрузил gif в Image с помощью метода FromStream из файла.Затем я загрузил MemoryStream с Image и преобразовал его в байтовый массив.Теперь я могу закрыть оба потока.После этого я использовал TypeConverter для восстановления изображения из байтового массива.Я знаю, это не очень элегантно, но работает.

Image imgTemp = Image.FromStream(ms);
imgTemp.Save(byteStream, imgTemp.RawFormat);
byte[] temparray = byteStream.ToArray();
TypeConverter tc = TypeDescriptor.GetConverter(typeof(Image));
Image newImage = (Image)tc.ConvertFrom(temparray);
this.m_Image.Image = null;
this.m_Image.Image = newImage;
...