2011-04-27 89 views
4

this页面上,请参阅树的图片及其标题。我正计划在Paint.NET上实现一个插件来做到这一点...但我不知道如何。C#删除除颜色以外的两个最低有效位

我已经遍历每个像素(对于那些想知道,Paint.NET API使这种效率)ColorBgra(可以转换为System.Drawing.Color),但现在我需要修改像素以删除“all but每种颜色的两个最低有效位“。

我该怎么做?

回答

6

对于每个分量(R,G,B,A),则需要屏蔽掉不需要的位,如在:

colour.R &= 3; 
colour.G &= 3; 
colour.B &= 3; 
colour.A &= 3; 
+0

伟大工程!虽然......你能否提供一些更多的解释,说明3是什么意思......以及我将如何删除其他位? – Entity 2011-04-27 12:40:38

+0

3是两个最低有效位的总和:0x00000011 == 3 – PVitt 2011-04-27 12:42:45

+1

要删除其他位,可以简单地将它们打开或关闭:位7是0x01000000,位3是0x00000100,位1,3,5,7是0x01010101 – PVitt 2011-04-27 12:43:38