validateImageData 参数和 Image.FromStream()

2024-02-09

我担心这个重载中的第三个参数,validateImageData。文档没有对此进行太多解释,它只说明它会导致图像数据被验证,但没有详细信息,到底是做什么来验证图像数据的?

public static Image FromStream (
    Stream stream,
    bool useEmbeddedColorManagement,
    bool validateImageData
)

我想在网络应用程序中使用它,所以,我想知道如果我将 validateImageData 设置为 true 到底会发生什么,我想确保用户上传的是有效的图像,是否建议将 validateImageData 设置为 true或者如果抛出异常,是否足以捕获异常?另外,将 validateImageData 设置为 true 是否会以任何方式影响性能? (用户最多可以上传250k大小的图像)

Thanks


从 Reflector 中我们可以看到:

if (validateImageData)
{
    num = SafeNativeMethods.Gdip.GdipImageForceValidation(new HandleRef(null, zero));
    if (num != 0)
    {
        SafeNativeMethods.Gdip.GdipDisposeImage(new HandleRef(null, zero));
        throw SafeNativeMethods.Gdip.StatusException(num);
    }
}

所以我们看到GdipImageForceValidation http://msdn.microsoft.com/en-us/library/ms534041(VS.85).aspx被调用(回想一下,System.Drawing 只是 GDI+ 的包装器)。这个函数的文档不是很好:

该函数强制验证图像。

不是很有用。然而,重点是 - 图像文件被询问以确保它可以安全加载。这可能会导致整个图像被加载到内存中。

如果您接受用户的输入,我当然会将此标志设置为 true - 您永远不知道用户将上传哪种文件(格式错误或其他)。安全总比后悔好。这就是为什么默认值是true.

另请注意,GDI+ 是not推荐用于服务器环境。你最好使用System.Windows.Media.Imaging.

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

validateImageData 参数和 Image.FromStream() 的相关文章

  • 切换图片框可见性 C#

    为什么图片框控件的可见性属性在这里不起作用 我最初将它们设置为 false 以便在屏幕加载时它们不可见 但后来我想切换这个 我已完成以下操作 但似乎不起作用 这是一个 Windows 窗体应用程序 private void Action w
  • WebClient读取错误页面的内容

    我有一个加载页面内容的应用程序 我使用 WebClient 类 即使服务器返回 404 500 等错误 我也需要检索内容 我需要这样的东西 WebClient wc new WebClient string pageContent try
  • 关闭 XDOCUMENT 的实例

    我收到这个错误 该进程无法访问文件 C test Person xml 因为它是 被另一个进程使用 IOException 未处理 保存文件内容后如何关闭 xml 文件的实例 using System using System Collec
  • 如何使用汇编获取BIOS时间?

    我正在从头开始实现一个小型操作系统 用于教育目的 现在 我想使用汇编来获取 BIOS 时间 我对此进行了很多搜索 但找不到任何代码示例来执行此操作 如果有人可以提供任何参考或代码示例或与此相关的任何内容 我将非常感激 See 时钟中断 1a
  • 使用反射获取基类的受保护属性值

    I would like to know if it is possible to access the value of the ConfigurationId property which is located in the base
  • 指示泛型返回动态类型的对象

    这个问题是我原来问题的后续问题here https stackoverflow com questions 2541184 using a type object to create a generic 假设我有以下泛型类 简化 class
  • 线程安全的 C++ 堆栈

    我是 C 新手 正在编写一个多线程应用程序 不同的编写者将对象推入堆栈 读者将它们从堆栈中拉出 或至少将指针推入对象 C 中是否有任何内置结构可以在不添加锁定代码等的情况下处理此问题 如果没有 那么 Boost 库呢 EDIT 你好 感谢您
  • 为什么重载方法在 ref 仅符合 CLS 方面有所不同

    公共语言规范对方法重载非常严格 仅允许根据其参数的数量和类型来重载方法 如果是泛型方法 则根据其泛型参数的数量进行重载 根据 csc 为什么此代码符合 CLS 无 CS3006 警告 using System assembly CLSCom
  • C# 中处理 SQL 死锁的模式?

    我正在用 C 编写一个访问 SQL Server 2005 数据库的应用程序 该应用程序是数据库密集型的 即使我尝试优化所有访问 设置适当的索引等 我预计迟早会遇到死锁 我知道为什么会发生数据库死锁 但我怀疑我能否在某个时候发布不发生死锁的
  • 从包含大量文件的目录中检索文件

    我的目录包含近 14 000 000 个 wav 格式的音频样本 所有普通存储 没有子目录 我想循环浏览文件 但是当我使用DirectoryInfo GetFiles 在该文件夹上 整个应用程序冻结了几分钟 可以用另一种方式完成吗 也许读取
  • 有没有办法设置 log4net 内存附加程序可以包含的最大错误消息数?

    我想向根记录器添加一个内存附加程序 以便我可以连接到应用程序并获取最后 10 个事件 我只想保留最后 10 个 我担心这个附加程序会消耗太多内存 该应用程序设计为 24 7 运行 或者还有别的办法吗 您需要创建一个自定义附加程序来存储有限数
  • `cosf`、`sinf` 等不在 `std` 中 [重复]

    这个问题在这里已经有答案了 根据这里的讨论 我有报告了一个错误 https bugs launchpad net ubuntu source gcc 8 bug 1831385给 Ubuntu 开发者 编译以下示例 C 程序时 includ
  • asp.net c# 防止在从服务器端代码更改索引时触发 selectedindexchanged 事件

    我在同一个 aspx 页面上有两个下拉列表控件
  • 当在 Repository/UnitOrWork 之上使用 Service 类时,我应该在哪里放置逻辑不适合 Repository 的常用数据访问代码?

    In my 先前的问题 https stackoverflow com questions 24906548 using the generic repository unit of work pattern in large projec
  • 在 .NET 中记录 StackOverflowException

    最近 我的 NET 应用程序 asp net 网站 中出现了堆栈溢出异常 我之所以知道该异常是因为它出现在我的 EventLog 中 我知道 StackOverflow 异常无法被捕获或处理 但是有没有办法在它杀死您的应用程序之前记录它 我
  • 微软语音识别速度

    我正在使用微软的语音识别器开发一个小型练习应用程序 对于我正在做的事情来说 我似乎无法让它足够快地识别单个单词 我希望能够正常说话 系统将从我所说的内容中抓取 关键字 并生成一个字符串 目前我正在使用 5 个单词的自定义语法 红 蓝 黄 绿
  • 如何将 CSV 文件读入 .NET 数据表

    如何将 CSV 文件加载到System Data DataTable 根据CSV文件创建数据表 常规 ADO net 功能是否允许这样做 我一直在使用OleDb提供者 但是 如果您正在读取具有数值的行 但希望将它们视为文本 则会出现问题 但
  • 将一个 long 转换为两个 int 以进行重构

    我需要将一个参数作为两个 int 参数传递给 Telerik Report 因为它不能接受长参数 将 long 拆分为两个 int 并在不丢失数据的情况下重建它的最简单方法是什么 使用掩蔽和移位是最好的选择 根据文档 long 保证为 64
  • c# 替代方案中 cfusion_encrypt 中填充的密钥是什么?

    我找到了从这里复制 C 中的 cfusion encrypt 函数的答案 ColdFusion cfusion encrypt 和 cfusion decrypt C 替代方案 https stackoverflow com questio
  • 通过 cmake 链接作为外部项目包含的 opencv 库[重复]

    这个问题在这里已经有答案了 我对 cmake 比较陌生 经过几天的努力无法弄清楚以下事情 我有一个依赖于 opencv 的项目 它本身就是一个 cmake 项目 我想静态链接 opencv 库 我正在做的是我的项目中有一份 opencv 源

随机推荐

  • 使用 spring data jpa 强制插入

    我想强制 CrudRepository save entity 插入一个新实体 而不是先选择该实体 然后在主键已存在时更新它 我会尝试举个例子 public class Lock Id Column private UUID uuid UU
  • UnicodeEncodeError:“ascii”编解码器无法对位置 0-5 中的字符进行编码:序号不在范围(128)[重复]

    这个问题在这里已经有答案了 我只是想解码类似 uXXXX uXXXX uXXXX 的字符串 但我收到一个错误 python Python 2 7 6 default Sep 9 2014 15 04 36 GCC 4 2 1 Compati
  • Numpy 中的 Sigmoid 函数

    为了快速计算 我必须在 Numpy 中实现我的 sigmoid 函数 这是下面的代码 def sigmoid Z Implements the sigmoid activation in bumpy Arguments Z numpy ar
  • PHPExcel setAutoSize 用于合并单元格

    没有合并的代码 objPHPExcel new PHPExcel sheet objPHPExcel gt getActiveSheet sheet gt setCellValueByColumnAndRow 0 1 test test t
  • 如何将 StyleCop 4.7 与 Visual Studio 2013 集成?

    我真的很想在 Visual Studio 2013 中使用 StyleCop 但不幸的是它不起作用 我已经安装了 4 7 版本官方网站 http stylecop codeplex com 检查所有选项 包括 VS Studio 集成和 M
  • Safari 扩展上的应用程序传输安全

    我的应用程序扩展需要打开许多网站的 URL 我这样做 for NSExtensionItem item in self extensionContext inputItems for NSItemProvider itemProvider
  • 如何在C中释放二维数组?

    我有以下代码 int ptr int malloc sizeof int N for int i 0 i
  • Django:更新页面而不重新加载

    我想更新我的主页 html使用按钮操作并显示来自服务器的一些结果 但问题是 当我单击按钮时 整个页面都会重新加载 在这里 我的项目名称是 T2KG 我的表单标签如下所示
  • 如何实现Memcached与数据库同步

    AFAIK Memcached 不支持与数据库同步 至少是 SQL Server 和 Oracle 我们计划将 Memcached 免费 与我们的 OLTP 数据库结合使用 在某些业务流程中 我们进行一些繁重的验证 这需要从数据库中获取大量
  • C# HttpClient.SendAsync 等待抛出 NullReferenceException

    首先 我正在尝试为产品构建一个插件 因此环境不是我的 而且我对正在发生的事情没有太多了解 据我所知 系统正在运行 NET Framework 4 6 2 并且我已尝试确保所有依赖项都与系统上的依赖项相匹配 我看到的问题是 当我发出await
  • 如何融化 pandas 数据框?

    On the pandas questions tagged pandas标签 我经常看到用户询问有关在 pandas 中融化数据框的问题 我将尝试针对这个主题进行规范的问答 自我回答 我要澄清一下 什么是熔化 如何使用熔体 什么时候使用熔
  • 如何在 Rust 中使用单一方法创建文件及其父目录?

    我可以打开一个文件来创建它及其父目录吗OpenOptions或者类似的单一方法 这只会创建一个新文件 如果我的路径包含不存在的目录 它将不起作用 pub fn save file file path String gt Result lt
  • 如何在文本字段中模拟退格操作?

    当按下按钮时 我只想在常规文本框中模拟 退格 删除光标左侧的字符 谷歌和各种论坛正在就此产生非常随机的结果 执行此操作的正确方法是什么 这似乎在 Safari 中有效 也可能在 Firefox 中有效 但我还没有在 IE 中测试过它 fun
  • 获取当前系统时间?

    使用 Objective C 获取当前时间 HH MM SS 的最佳方法是什么 我想我应该看看 NSDate 和 NSDateFormatter 我快速浏览了一下文档 它看起来比我预期的要复杂一些 所以我想我应该在这里检查一下以确保我走在正
  • 是否可以将构建时间插入到应用程序中?

    A game has this 我很好奇这是否是实际的构建时间 果然 文件上次修改 日期Crysis exe 该程序 是03 31 2009 01 40 当然 开发人员可以轻松地手动输入该值 并在一分钟内构建应用程序 但我很好奇当应用程序实
  • 画布图像直到第二次尝试才​​显示

    我正在尝试使用该元素绘制静态 Google 地图图像 一旦用户单击提交按钮 该图像就会出现在屏幕上 html 看起来像这样
  • AWS SNS 通过 Cognito 身份 ID 发布给特定用户

    我在这里尝试做的是 当特定用户属于新添加的 DynamoDB 项目的一部分时 通过 SNS 和 APNS 发送通知 我想将其发送给用户 Cognito 身份 ID 而不是设备令牌 因此 在添加项目时应该触发 Lambda 然后检查 Cogn
  • iPython Notebook Markdown 单元中的语法突出显示

    有没有办法让 iPython Notebooks 中的 Markdown 单元格突出显示代码块中的语法 例如 在GitHub中 可以通过以下方式获得所需的效果 python gt gt gt print hello The GitHub 上
  • ASP.NET - 如何使用 C# 显示 javascript 警报?

    我有一个包含文本框和按钮的页面 当用户单击提交按钮时 我想显示基于布尔值的消息 我研究过 stackoverflow 并尝试了这个问题中的代码 Asp net Webform 显示警报和重定向 https stackoverflow com
  • validateImageData 参数和 Image.FromStream()

    我担心这个重载中的第三个参数 validateImageData 文档没有对此进行太多解释 它只说明它会导致图像数据被验证 但没有详细信息 到底是做什么来验证图像数据的 public static Image FromStream Stre