gpt4 book ai didi

windows - 在内存中绘制 16 位灰度位图

转载 作者:可可西里 更新时间:2023-11-01 13:14:55 30 4
gpt4 key购买 nike

需要绘制 16 位灰度内存位图。将 TCanvas 与位图相关联会很棒。我使用 Delphi,但任何语言都可以。我只需要这个想法。

有什么想法吗?

将灰度转换为 RGB 不是一种选择,因为在此过程中会丢失一半的分辨率(像素深度)。

最佳答案

您可以尝试像 ImageFX 这样的图像库,或者对于开源库,请尝试 Graphics32 ,或 VampyreImagingLIbrary ,根据其文档 here它支持一些操作,例如在加载到缓冲区中的图像上绘制线条和矩形。我希望扫描仪(图像处理)库比非成像库更好地支持灰度图像,但我不希望扫描仪图像处理库基于内存。

但是如果您想直接在可见缓冲区中完成工作(您提到了 TCanvas),并且您愿意将自己限制在 Delphi XE 和 Windows 7 上,您可以使用 Direct2D 上下文,它支持 16 和32 位深度,但由于 32 位颜色深度相对于灰度图像仍然只有 8 位深度,我认为所有普通的非灰度图形库都会丢失一些关于你的信息。

如果你不介意使用有点旧的东西,并且有点依赖于 Microsoft Windows,你可以研究使用 DirectDraw 样式(现在合并到 DirectX 中)来进行缓冲区管理(保存 16 位数据)也让你在上面画画。不过,我不知道它对 16 位灰度图像有任何特殊支持。

有趣的是,WPF native 支持 16 位灰度。如果您能了解他们是如何做到的,您就可以在 Delphi 中模仿该技术。该链接还讨论了使用 OpenGL 进行 16 位亮度,但问题中没有暗示 OpenGL 允许这样做。我发现有人试图使用 OpenGL对于用 delphi(16 位灰度)图像显示编写的医疗应用程序,但没有提及修改内存中的图像。

关于windows - 在内存中绘制 16 位灰度位图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6780464/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com