C # imagen GIF a MemoryStream y viceversa (perder animación)
Tengo un pequeño problema y no encuentro ninguna solución. Quiero convertir un GIF en un byte [] y luego volver a un GIF. Funciono bien pero pierdo la animación.
Es un GIF perfectamente animado cuando comienzo (lo muestro en unPictureBox
elemento). Pero después de la conversión me quedo atascado con el primer fotograma.
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);
Traté de usar no RawFormat sinoSystem.Drawing.Imaging.ImageFormat.Gif
. No cambió nada. @frames1
es el número correcto de fotogramas. @frames2
es 1.
Tengo 2PictureBox
elementos en mi GUI. Uno mostrandoimg
y el otroimg2
. Peroimg2
no está animado mientras queimg
es. ¿Qué está mal
También he intentado utilizar la serialización para crear mi byte [].
Serialicé la imagen y la deserialicé nuevamente y tampoco cambió nada. ¿Cómo es esto posible