在图像处理后获得错误的颜色

Lit*_*Fox 5 c# colors bitmap xor

我试图用我的图像的RGB值对一些值进行异或,保存该图像并执行后退步骤,以获得原始图像.问题是,我不知道为什么我不清楚(有一些噪音)图像.这是我的代码,下面是一张图片:

Bitmap original = new Bitmap("D:\\img\\1.jpg");
Bitmap inp_bmp = new Bitmap("D:\\img\\1.jpg");

int width = inp_bmp.Width;
int height = inp_bmp.Height;
Color pixel;

for (int y = 0; y < height; y += 1)
{
    for (int x = 0; x < width; x += 1)
    {
        pixel = inp_bmp.GetPixel(x, y);

        int a = pixel.A;
        int r = (pixel.R ^ (1000))%256;
        int g = (pixel.G ^ (185675))%256;
        int b = (pixel.B ^ (78942))%256;
        inp_bmp.SetPixel(x, y, Color.FromArgb(a, r, g, b));


    }
}

pictureBox2.Image = inp_bmp;
pictureBox1.Image = original;
inp_bmp.Save("D:\\img\\4.jpg");
Run Code Online (Sandbox Code Playgroud)

保存图像后,我改变了

Bitmap inp_bmp = new Bitmap("D:\\img\\1.jpg");
Run Code Online (Sandbox Code Playgroud)

对于

 Bitmap inp_bmp = new Bitmap("D:\\img\\4.jpg");
Run Code Online (Sandbox Code Playgroud)

并删除

//inp_bmp.Save("D:\\img\\4.jpg");
Run Code Online (Sandbox Code Playgroud)

我得到一个像这样的图像

在此输入图像描述

(左原着,右 - 结果); 如你所见,我在图片4中得到了一些错误的颜色,为什么?总而言之,它接近原始,但它仍然是不对的

Lit*_*Fox 3

好吧,我发现问题了。问题在于保存图像。

这有助于:

 inp_bmp.Save("D:\\img\\4.png", System.Drawing.Imaging.ImageFormat.Png); 
Run Code Online (Sandbox Code Playgroud)