Un saluto a tutti. Ho scritto questa "cavolata" per scurire di una certa quantità l'image contenuta in una picturebox:

codice:
        public static void Dark(PictureBox P)
        {
            Color c;
            int R, G, B;
            for (int p = 0; p < P.Width; p++)
                for (int q = 0; q < P.Height; q++)
                {
                    c = Form1.bmp.GetPixel(p, q);
                    if (c != Color.Black)
                    {
                        R = c.R;
                        R -= 50;
                        if (R < 0)
                            R = 0;
                        G = c.G;
                        G -= 50;
                        if (G < 0)
                            G = 0;
                        B = c.G;
                        B -= 50;
                        if (B < 0)
                            B = 0;
                        c = Color.FromArgb(R, G, B);
                        Form1.bmp.SetPixel(p, q, c);
                    }
 
                }
            P.Image = Form1.bmp;
        }
Vi potete immaginare quanto sia "veloce" questo metodo, soprattutto per immagini di 500x500 pixel o più. Ho provato a cercare nel Framework qualche metodo predefinito già pronto, nelle classi Graphics, Image, Bitmap... ma non ho trovato niente che faccia quello che fa il mio Dark(). Qualche consiglio?
Grazie.