有人知道如何指定ColorMatrix (特别是C++/CLI中的System::Drawing::Imaging::ColorMatrix )来设置alpha阈值吗?例如,如果我使用10 ( 10 /255)作为我的阈值,那么RGBA Alpha等于或小于10的任何像素都将拥有0.0f Alpha,而高于10的每个像素都将获得1.0f。
我正在尝试在2D场景编辑器中实现ColorID拾取,因为我厌倦了使用当前笨拙的方法来反转绘图变换,以确定鼠标指向给定位图的哪个像素。所以我想要做的是做一个ColorID渲染过程,就像这里描述的OpenGL,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遵循Hans对GDI+: Set all pixels to given color while retaining existing alpha value的回答,但我希望它也对Alpha组件应用一个阈值(即使使用ColorMatrix也是可能的)
发布于 2012-09-07 06:36:40
也许您正在寻找ImageAttributes.SetThreshold方法。
https://stackoverflow.com/questions/12293166
复制相似问题