Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#除去除两个最低有效位以外的所有颜色_C#_Math_Colors - Fatal编程技术网

C#除去除两个最低有效位以外的所有颜色

C#除去除两个最低有效位以外的所有颜色,c#,math,colors,C#,Math,Colors,在第页,请参见树的图片及其标题。我正计划实现一个插件来实现这一点。。。但我不知道怎么做 我已经将每个像素作为ColorBgra(可以转换为System.Drawing.Color)进行循环(对于那些想知道的人来说,Paint.NET API使其高效),但现在我需要修改像素以删除“除每种颜色的两个最低有效位之外的所有像素” 我该怎么做?对于每个组件(R、G、B、A),您需要屏蔽掉不需要的位,如: colour.R &= 3; colour.G &= 3; colour.B &

在第页,请参见树的图片及其标题。我正计划实现一个插件来实现这一点。。。但我不知道怎么做

我已经将每个像素作为
ColorBgra
(可以转换为
System.Drawing.Color
)进行循环(对于那些想知道的人来说,Paint.NET API使其高效),但现在我需要修改像素以删除“除每种颜色的两个最低有效位之外的所有像素”

我该怎么做?

对于每个组件(R、G、B、A),您需要屏蔽掉不需要的位,如:

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

很好!虽然。。。你能不能再解释一下3的含义。。。如何删除其他位?3是两个最低有效位的总和:0x00000011==3要删除其他位,只需打开或关闭它们:位7是0x01000000,位3是0x00000100,位1,3,5,7是0x01010101;在C#0x中。。。表示十六进制,其中3==0x03(和15==0x0F等)。如果需要在某个时间点使用
System.Drawing.Color
对象执行此操作,则需要执行
Color NewColor=Color.FromArgb(baseColor.a&3,baseColor.R&3,baseColor.G&3,baseColor.B&3),因为A、R、G和B在这里是只读属性。