【问题标题】:How to load 12 bit image into System.Drawing.Bitmap?如何将 12 位图像加载到 System.Drawing.Bitmap?
【发布时间】:2013-04-09 22:20:13
【问题描述】:

我有一个服务器提供 12 位图像,我可以通过 http 访问图像,但由于它是 12 位图像,我无法加载到 System.Drawing.Bitmap(Stream stream)。

图片格式PNG位深12

这里的图片是原始的 12 位 1

这就是您可以加载后图像的外观。

【问题讨论】:

  • 因为这是一种非标准格式,我猜你必须辨别它是什么格式并自己解析文件。
  • 如果您可以将我链接到示例图像,愿意试一试吗? :)
  • 我正在尝试获取一张图片,它应该与普通 PNG 8 位相同,但动态范围使用 12 位。
  • 流行的图像查看器/编辑器(如 Paint、IrfanView、GIMP 等)可以显示图像吗?
  • @yesraaj 嗯,这需要一个十六进制编辑器。

标签: c# .net bitmap drawing bit-manipulation


【解决方案1】:

您可以在使用 OpenCV 库时读取图像,因为它也支持 12 位。 您可能还喜欢寻找适配器/包装器,以便在 c# 中使用它,因为它最初是一个 C++ 库

也看看那些帖子:

OpenCV: Working with 12bit gray scale raw data

What is the BMP format for Gray scale Images?

Convert 12-bit Bayer image to 8-bit RGB using OpenCV

希望对你有帮助

【讨论】:

  • System.Drawing.Bitmap 表示 .NET 土地。尽管他可以制定一个构建互操作程序集的解决方案。
  • .Net 土地不禁止 OpenCV。我已经通过 VB 项目中的包装器使用了 OpenCV,并将一些 opencv 图片转换为 .Net 土地位图,所以这是可能的。因为dll declare interop,所以我说他应该找个wrapper/adapter
  • 我也是这么说的:使用互操作是可能的。但首先他应该调试更多并确定。他说的是通过http访问图像,可能是服务器端的ASP.NET代码,谁知道呢。我们不知道该软件是否在生产中,添加第 3 方 dll 可能并不容易。如果 CLR 不支持该格式,那么使用 OpenCV 可能比自己编写一些代码要好得多。可能有时髦的图像尺寸等。
  • 我同意,使用标准方法访问图片,如果图片采用不寻常的格式,那是非常不寻常的。感谢您详细解释
  • 我给 +1 是因为有人 -1 或 -2 你也是,如果支持这张图片,那就是一个解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-02-07
  • 2011-02-17
  • 1970-01-01
  • 2013-08-10
  • 2014-10-29
  • 2016-03-07
  • 1970-01-01
相关资源
最近更新 更多