1

ローカルに保存するために、Web から画像をダウンロードしています。他の画像形式でもうまく機能しますが、WebP 画像を読み込もうとすると、以下のメソッドは引数の例外で失敗します。

    private static Image GetImage(string url)
    {
        try
        {
            HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            return Image.FromStream(response.GetResponseStream());
        }
        catch
        {
            return null;
        }
    }

C# で .webp イメージをどのように読み取るのですか? タイプ間の変換を可能にするこの他の質問を見つけましたが、C#のWebPライブラリを実行したくありません

やりたくない理由は、品質が落ちるのではないかと思うからです。さらに、なぜこれが機能しないのか知りたいです。

4

2 に答える 2

3

基本クラス ライブラリは、WebP 画像の処理には役立ちません。ただし、受信したファイルをディスクに保存するだけであれば、WebP 画像を扱っていることを意識する必要はありません。受信したデータを単純にバイナリ BLOB として扱い、ファイルにダンプできます。たとえばStream.CopyToFileStream.

Content-Type HTTP ヘッダーはダウンロードするファイルのMIME タイプを提供し、Content-Dispositionヘッダーはファイル名と拡張子を提供します (ただし、解析が必要になる場合があります)。HttpWebResponse.ContentTypeと を使用してアクセスできますHttpWebResponse.Headers["Content-Disposition"]

于 2013-11-27T22:18:36.203 に答える