我正在使用以下内容从网上抓取动画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);
答案 0 :(得分:7)
您不应该从流(it will only store the first frame)创建Image
。相反,您应该使用Stream.CopyTo
method将Stream
的内容直接写入磁盘,以将内容复制到为目标文件创建的FileStream
。
using (Stream stream = httpWebReponse.GetResponseStream())
using (FileStream fs = File.Create(path))
{
stream.CopyTo(fs);
}