我有一个小问题,但我找不到任何解决方案。
我想将GIF转换为byte [],然后再将其转换回GIF。 它可以正常工作,但是动画效果丢失了。
当我开始时,它是完美的动画GIF(我在PictureBox元素中展示它)。 但是转换后,我卡在了第一帧上。
我的GUI中有两个
我也尝试过使用序列化来创建我的byte[]。我对图像进行了序列化和反序列化,但结果并没有发生任何变化。这是怎么可能的呢?
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);
我尝试使用的是System.Drawing.Imaging.ImageFormat.Gif
而不是RawFormat,但结果没有任何变化。frames1
包含正确数量的帧,frames2
为1。我的GUI中有两个
PictureBox
元素,一个显示img
,另一个显示img2
。但img2
不带动画,而img
带有动画。出了什么问题呢?我也尝试过使用序列化来创建我的byte[]。我对图像进行了序列化和反序列化,但结果并没有发生任何变化。这是怎么可能的呢?
frames1
和frames2
都等于17。 - Michael Minton