5

以下を使用して、Web からアニメーション 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.CopyToFileStream

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