我正在从网络下载图像以将其保存在本地。它适用于任何其他图像格式,但是当我尝试读取 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"]
访问它们。
关于c# - 带有 C# ImageFormat 类的 WebP 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20231081/