【发布时间】:2011-01-08 20:59:49
【问题描述】:
是否可以在无需实际下载实际图像的情况下检索有关网站上图像的信息?我对宽度/高度和 kb 大小感兴趣。
【问题讨论】:
标签: c# .net image http http-headers
是否可以在无需实际下载实际图像的情况下检索有关网站上图像的信息?我对宽度/高度和 kb 大小感兴趣。
【问题讨论】:
标签: c# .net image http http-headers
某些图像格式在标题中包含尺寸信息。您可以解析标头以计算大小,但当然实现会因图像格式而异。
【讨论】:
http-headers 标记,我相信您的意思是图像的标题,即图像二进制表示的第一个字节。对吗?
没有。您可以使用 Content-Length 标头获取文件大小,但您至少需要开始下载图像才能获取宽度/高度。
一旦图像开始下载,您就可以解析流,并按照@BrokenGlass 和@Ed Swangren 的建议尝试以这种方式找到图像的宽度/高度。
话虽如此,但如果下载整个图像,您可以使用可用的库快速找到图像的宽度/高度,这听起来工作量很大。除非您要处理大量图像或大量图像,否则下载文件并以这种方式检查它们的大小可能会更容易。
【讨论】:
您可以通过 HTTP HEAD 请求确定图像的文件大小,响应将包含内容长度,在 .NET 的情况下为 HttpResponse.ContentLength。
为了确定许多图像格式的宽度/高度,您只需要在文件开头的一些字节,因此您可以从它开始 - 如上所述,它取决于实际的图像格式。
【讨论】: