C#获取networking上的图像的宽度高度,而无需下载整个文件?

C#获取networking上的图像的宽度高度,而无需下载整个文件?,第1张

概述C#获取networking上的图像宽度/高度,而无需下载整个文件?

我相信与JPG,宽度和高度信息存储在前几个字节 。 给定绝对URI,获取这些信息的最简单方法是什么?

为什么不同的计算机或 *** 作系统上的文化date格式不同?

如何检查给定PID的进程是否正在运行?

windbg无法deBUGging.net转储

如何在PowerShell中使用HTML TIDy .NET DLL封装器?

GUI故障:checkBox文本在windows 8中显示不完整

首先,您可以使用Range标头请求图像的前一百个字节。

httpWebRequest request = (httpWebRequest)WebRequest.Create(url); request.headers.Set(httpRequestheader.UserAgent,"Range: bytes=0-100");

接下来,你需要解码。 unix file命令有一个通用格式表和关键信息的位置。 我建议安装Cygwin并看看/usr/share/file/magic 。

对于gif和png ,你可以很容易地从前32个字节获得图像尺寸。 但是,对于JPEG,@Andrew是正确的,因为您无法可靠地获取这些信息。 你可以找出它是否有一个缩略图,缩略图的大小。

得到实际的JPEG尺寸,你需要扫描start of frame标签的start of frame 。 不幸的是,人们无法可靠地确定事件发生的位置,缩略图可能会将数千字节的数据推送到文件中。

我建议使用range请求来获得前32个字节。 这将让你确定文件类型。 之后,如果是JPEG,则下载整个文件,并使用库来获取大小信息。

我有点生疏,但用jpeg,可能不像看起来那么简单。 Jpeg在每个有自己的高度/宽度和分辨率的数据段中都有一个标题。 jpeg的设计并不容易。 您可能需要阅读整个图像来查找jpeg中每个段的宽度和高度,以获取整个宽度和高度。

如果您绝对需要流式传输图像,请考虑更换为其他更容易传输的格式,而JPEG将会变得越来越困难。

你可以这样做,如果你可以开发一个服务器端程序,将前进和读取每个段的头来计算段的宽度和高度。

这有点荒谬罗宾逊 ,但是因为浏览器似乎能够做到这一点,也许你可以自动IE浏览器下载图像内的网页,然后询问浏览器的DOM显示图像下载完成之前的尺寸?

总结

以上是内存溢出为你收集整理的C#获取networking上的图像的宽度/高度,而无需下载整个文件?全部内容,希望文章能够帮你解决C#获取networking上的图像的宽度/高度,而无需下载整个文件?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1293821.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存