C # gif Imagem para MemoryStream e vice-versa (perde animação)
Tenho um pequeno problema e não encontro nenhuma solução. Quero converter um GIF em um byte [] e depois voltar a um GIF. Funciono bem, mas perco a animação.
É um GIF perfeitamente animado quando inicio (mostro-o em umPictureBox
elemento). Mas após a conversão, fico com o primeiro quadro.
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);
Eu também tentei usar não RawFormat, masSystem.Drawing.Imaging.ImageFormat.Gif
. Não mudou nada.frames1
é o número certo de quadros.frames2
é 1.
Eu tenho 2PictureBox
elementos na minha GUI. Um mostrandoimg
e o outroimg2
. Masimg2
não é animado enquantoimg
é. O que está errado
Também tentei usar a serialização para criar meu byte [].
Eu serializei a imagem e a desserializei novamente, e também não mudou nada. Como isso é possível