有谁知道如何指定 ColorMatrix(特别是 C++/CLI 中的 System::Drawing::Imaging::ColorMatrix)来设置 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
遵循 Hans 对 GDI+ 的回答:将所有像素设置为给定颜色,同时保留现有的 alpha 值,但我希望它也将阈值应用于 Alpha 组件(假设甚至可以使用 ColorMatrix)