У меня есть небольшая проблема, и я не нахожу никаких решений. Я хочу преобразовать GIF в байт [], а затем обратно в GIF. У меня работает нормально, но я теряю анимацию.
Когда я начинаю, это идеально анимированный GIF (я показываю его в элементе PictureBox
). Но после преобразования я застреваю на первом кадре.
HttpWebRequest httpWebRequest = (HttpWebRequest)HttpWebRequest.Create("creativetechs.com/i/tip_images/ExampleAnimation.gif");
HttpWebResponse httpWebReponse = (HttpWebResponse)httpWebRequest.GetResponse();
Stream stream = httpWebReponse.GetResponseStream();
Image img = Image.FromStream(stream);
MemoryStream ms = new MemoryStream();
img.Save(ms,img.RawFormat);
byte [] bytes = ms.ToArray();
Image img2 = Image.FromStream(new MemoryStream(bytes));
int frames1 = img.GetFrameCount(System.Drawing.Imaging.FrameDimension.Time);
int frames2 = img2.GetFrameCount(System.Drawing.Imaging.FrameDimension.Time);
Я тоже пробовал использовать не RawFormat а System.Drawing.Imaging.ImageFormat.Gif
. Ничего не изменил. frames1
- правильное количество кадров. frames2
равно 1.
У меня есть 2 элемента PictureBox
в моем графическом интерфейсе. На одном изображено img
, а на другом img2
. Но img2
не анимируется, а img
анимируется. Что случилось?
Я также пытался использовать сериализацию, чтобы создать свой byte[].
Я сериализовал изображение и снова десериализовал его, и это тоже ничего не изменило. Как это возможно?
frames1
, иframes2
равны 17. - person Michael Minton   schedule 07.01.2012