C#:远程图像大小,无需下载

时间:2012-10-23 07:06:55

标签: c#

我有一张图片的网址。是否可以在不下载完整图像的情况下找出其大小(以字节为单位)和尺寸?

修改

HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "HEAD";
HttpWebResponse resp = (HttpWebResponse)(req.GetResponse());
System.Console.WriteLine(resp.ContentLength);

我写了这段代码。它在前两次工作正常,第三次给出WebException,即“操作超时”,而不管图像url如何。我在这里找不到什么东西吗?

2 个答案:

答案 0 :(得分:4)

不,这是不可能的。

您可以通过发出HTTP HEAD命令(而不是GET)来获取字节大小;这将仅返回HTTP标头,省略内容。

图像的HTTP标头将以字节为单位返回其大小:

Content-length: 6372
Content-type: image/jpeg

但不是它的尺寸。

所以你必须做HTTP GET ...

答案 1 :(得分:0)

基本上,是的。如果您知道它是什么类型的图像,例如png或jpg(您也可以从HTTP连接的MIME类型中获取此信息,您只能下载标题并从那里读取图像范围。另请参阅此相关问题:

What is the header size of png, jpg/jpeg, bmp, gif and other common graphics format?