【发布时间】:2011-06-06 14:19:12
【问题描述】:
我正在编写一些代码来对 16 位 DICOM 图像(作为 16 位 DIB 加载到内存中)执行窗口调平。我的窗口调平代码是完整的,它通过生成查找表将源像素值映射到所需的最终像素值来工作。
我不确定如何将此查找表应用于图像。我看到 BITMAPINFO 对象上有一个字段“bmiColors”,类型为 RGBQUAD[]。我已经尝试将我的查找表分配给这个属性,但它似乎没有效果。我也尝试过 SetDIBColorTable 函数,但它似乎也对屏幕输出没有任何影响。
是我正在尝试做的事情(在绘画时应用我的查找表,而不是修改像素数据本身),甚至 GDI 也支持,或者实际上应该循环遍历像素数据本身,一一更改像素值传送之前?
我是否使用 BitBlt 或 SetDIBitsToDevice 函数似乎也没有什么不同。它们在这里的行为往往相同。
如果 DirectX 更容易实现我想要的,我愿意使用。我以前没有使用过它,所以如果提供示例代码作为答案会很好。
我的代码对性能非常关键,所以我正在寻找最快的方法来实现这一点,即使它可能需要更多的工作/代码。
【问题讨论】:
标签: directx gdi lookup-tables dib