Invierta la imagen más rápido en C #

Estoy usando WinForms. Tengo un cuadro de cuadro en mi forma. Cuando abro una imagen en el cuadro de imagen, puedo invertir los colores de un lado a otro con solo hacer clic en un botón, pero mi código es extremadamente lento. ¿Cómo puedo aumentar el rendimiento?

   private void Button1_Click(object sender, System.EventArgs e) 
     {
        Bitmap pic = new Bitmap(PictureBox1.Image);
        for (int y = 0; (y 
                    <= (pic.Height - 1)); y++) {
            for (int x = 0; (x 
                        <= (pic.Width - 1)); x++) {
                Color inv = pic.GetPixel(x, y);
                inv = Color.FromArgb(255, (255 - inv.R), (255 - inv.G), (255 - inv.B));
                pic.SetPixel(x, y, inv);
                PictureBox1.Image = pic;
            }

        }

    }

Respuestas a la pregunta(2)

Su respuesta a la pregunta