C ++ / CLI:用于应用Alpha阈值的ColorMatrix

时间:2012-09-06 04:52:47

标签: image-processing c++-cli alpha colormatrix mouse-picking

有谁知道如何指定ColorMatrix(特别是System :: Drawing :: Imaging :: ColorMatrix在C ++ / CLI中)来设置alpha阈值?例如,如果我使用10(10/255)作为我的阈值,则RGBA Alpha为10或更小的任何像素将具有0.0f Alpha,并且上面的每个像素将获得1.0f。

我正在尝试在2D场景编辑器中实现ColorID拾取,因为我厌倦了使用我当前笨拙的方法来反转我的绘图变换来确定鼠标指向的给定位图的哪个像素。所以我想要做的是做一个像OpenGL中那样的ColorID渲染过程,如此处所述http://content.gpwiki.org/index.php/OpenGL_Selection_Using_Unique_Color_IDs但是我不能只是比较屏幕上位图的位置,因为大多数位图都包含大量的白色空间我不喜欢我希望通过鼠标拾取来拾取,这使我有了采摘颜色。

现在我的ColorMatrix看起来像

0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 1 0
R G B 0 1

在汉斯回答GDI+: Set all pixels to given color while retaining existing alpha value之后,我希望它也对Alpha组件应用一个阈值(假设甚至可以使用ColorMatrix)

1 个答案:

答案 0 :(得分:0)

也许您正在寻找ImageAttributes.SetThreshold方法。