public void Oscurecer(int amplada, int llargada, int CoorX, int CoorY, float brightness)
{
//PASO 1
//Hacemos una captura de pantalla inicial para poder trabajar con ella
IntPtr pCapturaPantalla = DLLs.GetWindowDC(ctrl.Handle);
graficoCapturaPantalla = Graphics.FromHdc(pCapturaPantalla);
//Creamos un bitmap para poder pegar la captura de imagen
bRecipientePant = new Bitmap(ctrl.Width, ctrl.Height);
Graphics graficoRecipientePant = Graphics.FromImage(bRecipientePant);
pCapturaPantalla = graficoCapturaPantalla.GetHdc();
IntPtr pRecipientePant = graficoRecipientePant.GetHdc();
//Pegamos la captura de pantalla en el bitmap
DLLs.BitBlt(pRecipientePant, 0, 0, ctrl.Width, ctrl.Height, pCapturaPantalla, 0, 0, 13369376);
graficoCapturaPantalla.ReleaseHdc(pCapturaPantalla);
graficoRecipientePant.ReleaseHdc(pRecipientePant);
//PASO 2
//Creamos un nuevo Bitmap de tamaño reducido para copiar
//solo un fragmento de la captura de pantalla inicial
Bitmap bFragmento = new Bitmap(amplada,llargada);
Graphics graficoFragmento = Graphics.FromImage(bFragmento);
IntPtr pFragmento = graficoFragmento.GetHdc();
//Pegamos el fragmento especificado de la captura de pantalla inicial en el bitmap
DLLs.BitBlt(pFragmento, 0, 0, amplada, llargada, pCapturaPantalla, CoorX, CoorY, 13369376);
graficoFragmento.ReleaseHdc(pFragmento);
//PASO 3
//Oscurecemos el bitmap que contiene la captura de pantalla inicial
float[][] ptsArray ={ new float[] {1, 0, 0, 0, 0},
new float[] {0, 1, 0, 0, 0}, new float[] {0, 0, 1, 0, 0},
new float[] {0, 0, 0, 1, 0},
new float[] {brightness, brightness, brightness, 1, 1}};
ColorMatrix clrMatrix = new ColorMatrix( ptsArray );
ImageAttributes imgAttributes = new ImageAttributes();
imgAttributes.SetColorMatrix( clrMatrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap );
graficoCapturaPantalla.DrawImage(bRecipientePant, new Rectangle(0, 0, ctrl.Width, ctrl.Height), 0, 0, ctrl.Width, ctrl.Height,GraphicsUnit.Pixel, imgAttributes);
//PASO 4
//Pegamos el fragmento en la captura de pantalla inicial, la cual ya esta oscurecida
DLLs.BitBlt(pCapturaPantalla, CoorX, CoorY, amplada, llargada, pFragmento, 0, 0, 13369376);
}