使用c#修改位图图像中像素颜色时出错

时间:2016-07-11 14:47:05

标签: c# xamarin bitmap

我有这个代码,我尝试修改像素的颜色(x,y)。我想获得Color.White给出的颜色 - 像素的颜色(x,y)

  Bitmap  mPlan;
  for (int x=0; x < mPlanWidth; x++)
            {
                for (int y=0; y < mPlanHeight; y++)
                {
                    if (mPlan.GetPixel(x, y) == Color.White)
                     mPlan.SetPixel(x, y,  Color.White - mPlan.GetPixel(x, y));
                }

            }

但我在 Color.White - mPlan.GetPixel(x,y)的级别中出现错误,它告诉我无法将int转换为Android.Graphics.Color

我尝试使用Argb将所有颜色转换为int

   mPlan.SetPixel(x, y, System.Drawing.Color.FromArgb(System.Drawing.Color.White.ToArgb()- mFloorPlan.GetPixel(x, y))   );

但是方法TpArgb仅由程序集 System.Drawing 给出,而SetPixel将第三个参数作为Android.Graphics的颜色给出所以我有这种类型的冲突。

1 个答案:

答案 0 :(得分:0)

Bitmap bc;
Color color = new Color();
color.R = Color.White.R - bc.GetPixel(x, y).R;
color.G = Color.White.G - bc.GetPixel(x, y).G;
color.B = Color.White.B - bc.GetPixel(x, y).B;
bc.SetPixel(x, y, color);

通过设置新颜色的RGB值生成新颜色。