在C#中,可以使用以下代码片段在不下载整个文件的情况下获取Web上图像的宽度和高度:
using System.IO;
using System.Net;
using System.Drawing;
public static void GetImageSize(string imageUrl)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(imageUrl);
request.Method = "GET";
request.AllowAutoRedirect = true;
request.Timeout = 10000;
request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3";
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
using (Stream stream = response.GetResponseStream())
{
using (Image image = Image.FromStream(stream, false, false))
{
int width = image.Width;
int height = image.Height;
Console.WriteLine($"Image width: {width}, height: {height}");
}
}
}
}
这段代码首先创建一个HttpWebRequest
对象,并设置相关属性,然后使用GetResponse
方法获取HttpWebResponse
对象。接着,使用GetResponseStream
方法获取图像的流,并使用Image.FromStream
方法将流转换为Image
对象。最后,可以通过Image
对象的Width
和Height
属性获取图像的宽度和高度。
需要注意的是,这种方法只适用于在Web上托管的图像,而且需要确保目标服务器支持部分内容获取。如果目标服务器不支持部分内容获取,则需要下载整个文件才能获取宽度和高度。
领取专属 10元无门槛券
手把手带您无忧上云