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在这里是只读属性。