C# 在不下载整个文件的情况下获取网络上图像的宽度/高度?

2024-02-21

我相信 JPG 会存储宽度和高度信息在前几个字节内 http://en.wikipedia.org/wiki/JPEG#Syntax_and_structure。在给定绝对 URI 的情况下获取此信息的最简单方法是什么?


首先,您可以使用以下命令请求图像的前一百个字节Range header.

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Headers.Set(HttpRequestHeader.UserAgent, "Range: bytes=0-100");

接下来,您需要解码。这unix file command http://pwet.fr/man/linux/formats/magic有一个通用格式表和关键信息的位置。我建议安装 Cygwin 并看一下/usr/share/file/magic.

For gif's and png的,您可以轻松地从前 32 个字节获取图像尺寸。但是,对于 JPEG,@Andrew 是正确的,因为您无法可靠地获取此信息。您可以确定它是否有缩略图以及缩略图的大小。

要获取实际的 jpeg 大小,您需要扫描start of frame标签。不幸的是,人们无法提前可靠地确定其位置,并且缩略图可能会将其推送到文件中数千字节。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 在不下载整个文件的情况下获取网络上图像的宽度/高度? 的相关文章

  • 通信对象 System.ServiceModel.Channels.ServiceChannel 不能用于通信

    通信对象System ServiceModel Channels ServiceChannel 无法用于通信 因为它处于故障状态 这个错误到底是什么意思 我该如何解决它 您收到此错误是因为您让服务器端发生 NET 异常 并且您没有捕获并处理
  • 在 C++11 中省略返回类型

    我最近发现自己在 C 11 模式下的 gcc 4 5 中使用了以下宏 define RETURN x gt decltype x return x 并编写这样的函数 template
  • 有什么工具可以说明每种方法运行需要多长时间?

    我的程序的某些部分速度很慢 我想知道是否有我可以使用的工具 例如它可以告诉我可以运行 methodA 花了 100ms 等等 或者类似的有用信息 如果您使用的是 Visual Studio Team System 性能工具 中有一个内置分析
  • 在 Xcode4 中使用 Boost

    有人设置 C Xcode4 项目来使用 Boost 吗 对于一个简单的 C 控制台应用程序 我需要在 Xcode 中设置哪些设置 Thanks 用这个来管理它 和这个
  • Rails Windows Vagrant 响应时间非常慢

    我在跑 Vagrant 1 7 1 Rails 4 1 4 Thin 1 6 1 Windows 7 每个静态文件的发送时间都超过一秒 在我的 PC 上加载一个页面可能需要大约 20 秒 而在同事的 Linux 机器上则只需瞬间 有一些帖子
  • VS30063:您无权访问 https://dev.azure.com

    我正在尝试在 asp net core 2 1 mvc 应用程序中使用以下代码连接 Azure DevOps Uri orgUrl new Uri https dev azure com xxxxx String personalAcces
  • C++11 函数局部静态 const 对象的线程安全初始化

    这个问题已在 C 98 上下文中提出 并在该上下文中得到回答 但没有明确说明有关 C 11 的内容 const some type create const thingy lock my lock some mutex static con
  • 禁用 LINQ 上下文的所有延迟加载或强制预先加载

    我有一个文档生成器 目前包含约 200 个项目的查询 但完成后可能会超过 500 个 我最近注意到一些映射表示延迟加载 这给文档生成器带来了一个问题 因为它需要根据生成的文档来访问所有这些属性 虽然我知道DataLoadOptions可以指
  • 为什么 FTPWebRequest 或 WebRequest 通常不接受 /../ 路径?

    我正在尝试从 ftp Web 服务器自动执行一些上传 下载任务 当我通过客户端甚至通过 Firefox 连接到服务器时 为了访问我的目录 我必须指定如下路径 ftp ftpserver com AB00000 incoming files
  • 通过不同 DLL 或 EXE 中的指针或引用访问 STL 对象时发生访问冲突

    我在使用旧版 VC6 时遇到以下问题 我只是无法切换到现代编译器 因为我正在处理遗留代码库 http support microsoft com kb 172396 http support microsoft com kb 172396
  • C# using 语句、SQL 和 SqlConnection

    使用 using 语句 C SQL 可以吗 private static void CreateCommand string queryString string connectionString using SqlConnection c
  • 32位PPC rlwinm指令

    我在理解上有点困难rlwinmPPC 汇编指令 旋转左字立即然后与掩码 我正在尝试反转函数的这一部分 rlwinm r3 r3 0 28 28 我已经知道什么了r3 is r3在本例中是一个 4 字节整数 但我不确定这条指令到底是什么rlw
  • 是否有一个 C++ 库可以从 PDF 文件中提取文本,例如 PDFBox for Java? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 去年 我使用 PDFBox 在 Java 中创建了一个应用程序来获取某些 PDF 文件中的原始文本 现在
  • 内核开发和 C++ [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 从我know https stackoverflow com questions 580292 what languages are windo
  • 哪些属性有助于运行时 .Net 性能?

    我正在寻找可用于通过向加载器 JIT 编译器或 ngen 提供提示来确保 Net 应用程序获得最佳运行时性能的属性 例如我们有可调试属性 http msdn microsoft com en us library k2wxda47 aspx
  • 热重载时调用方法

    我正在使用 Visual Studio 2022 和 C 制作游戏 我想知道当您热重新加载应用程序 当它正在运行时 时是否可以触发一些代码 我基本上有 2 个名为 UnloadLevel 和 LoadLevel 的方法 我想在热重载时执行它
  • 在基类集合上调用派生方法

    我有一个名为 A 的抽象类 以及实现 A 的其他类 B C D E 我的派生类持有不同类型的值 我还有一个 A 对象的列表 abstract class A class B class A public int val get privat
  • Swagger 为 ASP.CORE 3 中的字典生成错误的 URL

    当从查询字符串中提取的模型将字典作为其属性之一时 Swagger 会生成不正确的 URL 如何告诉 Swagger 更改 URL 中字典的格式或手动定义输入参数模式而不自动生成 尝试使用 Swashbuckle 和 NSwag 控制器 pu
  • Azure函数版本2.0-应用程序blobTrigger不工作

    我有一个工作功能应用程序 它有一个 blob 输入和一个事件中心输出 在测试版中工作 随着最新的更改 我的功能不再起作用 我尝试根据发行说明更新 host json 文件 但它没有引用 blob 触发器 version 2 0 extens
  • 如何创建向后兼容 Windows 7 的缩放和尺寸更改每显示器 DPI 感知应用程序?

    我是 WPF 和 DPI 感知 API 的新手 正在编写一个在 Windows 7 8 1 和 10 中运行的应用程序 我使用具有不同每个显示器 DPI 设置的多个显示器 并且有兴趣将我的应用程序制作为跨桌面配置尽可能兼容 我已经知道可以将

随机推荐

  • Scala - “for-yield”子句在某些条件下可以不产生任何结果吗?

    在 Scala 语言中 我想编写一个函数 在给定范围内生成奇数 该函数在迭代偶数时打印一些日志 该函数的第一个版本是 def getOdds N Int Traversable Int val list new mutable Mutabl
  • python group by 和 count() 多列

    我有一个像这样的数据框 Country A B C UK 1 0 1 US 1 1 1 GB 0 1 1 UK 1 1 1 US 0 1 1 GB 0 1 1 我需要按国家 地区分组并计算值为 1 的所有列 我坚持为所有列设置列 1 的条件
  • Android 按下了数组中的哪个按钮索引

    如何设置 OnClickListener 来简单地告诉我按下了按钮数组中的哪个索引按钮 我可以使用数组更改这些按钮的文本和颜色 我这样设置它们 TButton 1 Button findViewById R id Button01 TBut
  • Xcode——查找项目中的死方法

    我很好奇是否有任何工具可以为此提供部分解决方案 由于performSelector 这是一个棘手的问题 但工具至少应该能够找出候选者 使人类的工作变得更容易 由于 Objective C 的动态特性 使用静态分析不可能检测已定义但未使用的函
  • make 未对 g++ 使用 -std=c++11 选项

    我正在尝试使用 make 编译 C 文件 但是 默认情况下它不使用 std c 11 标志 每当我需要编译使用 c 11 特定功能的程序时 我都必须使用 g 显式编译它 所以 我想问如何让我的系统上的所有 c 文件自动使用选项 std c
  • 在 Angular 2 中激活路由*之前*解析值

    只要承诺尚未解决 我就想阻止访问路线 另外 我想将该承诺的返回值传递给路由组件 Several https stackoverflow com questions 36260780 angular 2 resolve root compon
  • PHP ssh2_exec 通道退出状态?

    好的 所以 pecl ssh2 应该是 libssh2 的包装器 libssh2 具有 libssh2 channel get exit status 有什么方法可以获取这些信息吗 I NEED STDOUT STDERR 退出状态 我得到
  • 对于 Rails,如何访问或打印配置变量(作为实验或测试/调试)

    例如 在config environments production rb在 Rails 3 应用程序中 有 config serve static assets false 和许多变数 如何将它们作为一个整体全部打印出来 也许在一个对象中
  • 空单元格的数据表默认渲染函数

    我想为我拥有的所有数据表中的所有空单元格定义默认值 但我不想为每一列都这样做 example dataTable ajaxSource sources deep txt columns data engine render function
  • 如何将嵌套的Python字典转换为对象?

    我正在寻找一种优雅的方法来使用带有一些嵌套字典和列表 即javascript样式对象语法 的字典上的属性访问来获取数据 例如 gt gt gt d a 1 b c 2 d hi foo bar 应该可以通过这种方式访问 gt gt gt x
  • appSettings 配置部分中不存在键“UserID”

    突然 当我尝试在设计器中的 Window Forms 应用程序中打开 10 多个表单中的 2 个时 开始出现此错误 为了防止在加载设计器之前可能发生的数据丢失 必须解决以下错误 appSettings 配置部分中不存在键 UserID 它曾
  • 在 Android 手机上录音电话吗?

    我尝试过并使用以下代码来记录拨出电话 但它没有 Override public void onReceive Context context Intent intent this context context if intent getA
  • Laravel 迁移中的时间格式?

    我想要一个输入 您可以在其中输入 EU 格式的时间 例如 12 00 或 21 34 时 分 我怎么做 Schema create posts function Blueprint table table gt increments id
  • 使用 CSS3rotateY 的卡片翻转效果,但具有多个面取决于按钮按下?

    所以我需要创建一个几乎完全相同的翻转图像this http desandro github com 3dtransforms examples card 01 html 但不同之处在于 如果我想要多个按钮并且每个按钮都翻转到特定的面 情况会
  • 安装 ReSharper 后 Visual Studio 2005 Intellisense 停止工作

    我安装了 ReSharper 评估版并将其卸载 之后 Visual Studio 的 Intellisense 停止工作 我已经重新启动了计算机 但仍然存在此问题 有人可以帮我吗 我正在使用 Visual Studio 2005 谢谢 尝试
  • 通过调用.ashx页面下载文件

    我正在从母版页客户端脚本 Jquery 请求 ashx 页面 该脚本具有下载 PDF 文件的代码 当我调试它时 我可以看到 文件下载 代码的执行 但文件没有下载 ajax type POST url FileDownload ashx da
  • 使用 Kerberos 的 SSO

    我正在尝试使用 Kerberos 和 Python Flask kerberos 模块进行身份验证 基本上这是我的代码 DEBUG True app Flask name app config from object name os env
  • g++ 既是 C++ 编译器又是链接器吗?

    我正在查看 Eclipse 中构建的输出 我正在针对 ColdFire 处理器进行交叉编译 编译行如下所示 m68k elf g O2 falign functions 4 IC nburn include IC nburn MOD52 接
  • 更新标准表中的字段 LIPS-LFIMG 时出现问题

    所有的流程看起来都不错 但是当通过调用函数时 更新也失败 需要更新的字段没有更新 不知道问题出在哪里 有人可以帮我解决这个问题吗 我错过了什么步骤吗 错误消息登录 LT PROT DATA LT PROT LIKE PROTT OCCURS
  • C# 在不下载整个文件的情况下获取网络上图像的宽度/高度?

    我相信 JPG 会存储宽度和高度信息在前几个字节内 http en wikipedia org wiki JPEG Syntax and structure 在给定绝对 URI 的情况下获取此信息的最简单方法是什么 首先 您可以使用以下命令