我需要在一个16位灰度内存位图上绘制。将
有什么想法吗?
将灰度转换为RGB不是一个选项,因为在此过程中会丢失一半的分辨率(像素深度)。
TCanvas
与位图关联会很好。我使用Delphi,但任何语言都可以。我只需要想法。有什么想法吗?
将灰度转换为RGB不是一个选项,因为在此过程中会丢失一半的分辨率(像素深度)。
TCanvas
与位图关联会很好。我使用Delphi,但任何语言都可以。我只需要想法。如果您不介意使用一些老旧的东西,并且与 Microsoft Windows 有一定的联系,您可以调查使用 DirectDraw 样式(现已合并到 DirectX)来进行缓冲区管理(保存 16 位数据)并让您绘制它。但我不知道它是否具有任何特殊支持 16 位灰度图像的功能。
有趣的是,WPF 原生支持 16 位灰度。如果您能找出他们是如何做到的,您就可以在 Delphi 中模仿这种技术。该链接还讨论了使用 OpenGL 进行 16 位亮度,但问题中没有暗示 OpenGL 允许这样做。我发现有人试图在 Delphi 中使用 OpenGL 进行医学应用程序(16 位灰度)图像显示,但没有提到修改内存中的图像。
您可以使用Gdi+,它无法在16位灰度图像上工作,但可以在48位RGB图像上工作。
因此,我们可以通过将相同的16位数据复制到所有三个通道中来将16位数据转换为48位RGB数据。执行一些绘图操作,然后再将48位数据转换回16位。