Skip to main content
 首页 » 编程设计

c#之带有 C# ImageFormat 类的 WebP 图像

2024年02月13日26虾米哥

我正在从网络下载图像以将其保存在本地。它适用于任何其他图像格式,但是当我尝试读取 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 图像? 我发现了另一个允许在类型之间进行转换的问题,但我不想这样做 WebP library for C#

我不想这样做的原因是我认为它可能会损失一些质量。此外,我想知道为什么这不起作用。

请您参考如下方法:

基类库不会帮助您处理 WebP 图片。然而,如果你只想将接收到的文件保存到磁盘,你甚至不必知道你正在处理一个 WebP 图像。您可以简单地将接收到的数据视为二进制 blob 并将其转储到文件中,例如使用 Stream.CopyTo 和 FileStream。

Content-Type HTTP header 将为您提供正在下载的文件的 MIME 类型,以及 Content-Disposition header 可以为您提供文件名和扩展名(尽管您可能必须进行一些解析)。您可以使用 HttpWebResponse.ContentType 和 HttpWebResponse.Headers["Content-Disposition"] 访问它们。