5

我正在使用以下内容从网络上获取动画 gif。但是,将其保存到磁盘后,我丢失了 gif 中的帧,并且不再动画。不确定问题是否出在下面的方法中,或者是否是我保存它的时候,但是任何关于为什么下面不起作用的反馈表示赞赏。该方法有效 - 只是没有创建正确的动画 gif 文件。

public Image getImage(String url)
{
    HttpWebRequest httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(url);
    HttpWebResponse httpWebReponse = (HttpWebResponse)httpWebRequest.GetResponse();
    Stream stream = httpWebReponse.GetResponseStream();
    return Image.FromStream(stream, true, true);
}

Image im = getImage(url)
im.Save(pth,ImageFormat.Gif);
4

1 回答 1

7

您不应该Image从流中创建一个(它只会存储第一帧)。相反,您应该Stream使用例如将内容复制到为目标文件创建的Stream.CopyTo方法将内容直接写入磁盘。FileStream

using (Stream stream = httpWebReponse.GetResponseStream())
using (FileStream fs = File.Create(path))
{
    stream.CopyTo(fs);
}
于 2013-03-29T23:14:23.060 回答