Hola!!!
Al final he encontrado una forma de hacerlo:
" Lo que estas buscando son las matrices de transformación de color, estas matrices te permiten trasladar o escalar la información de color de una imagen.
Una matriz de transformación esta compuesta de una matriz de 5x5 puntos definidos como floats, siendo su distribución esta:
Código:
float[][] colorMatrixPoints = new float[][] {
new float[]{r, 0, 0, 0, 0},
new float[]{0, g, 0, 0, 0},
new float[]{0, 0, b, 0, 0},
new float[]{0, 0, 0, a, 0},
new float[]{t1, t2, t3, t4, 1}
};
Los valores r,g,b y a son los multiplicadores de color que nos permiten escalar los colores, por ejemplo, si ponemos 0.5 en el canal r y aplicamos la matriz sobre una imagen con un valor de rojo de 0.2 esta se nos quedaría en 0.1 (los colores pueden valer entre 0 y 1 en vez de entre 0 y 255).
Los valores t1 a t4 son los valores de translación de color, en vez de multiplicar la información por el valor, este se suma al valor actual del canal especificado (t1=r, t2=g...).
Como puedes ver, cambiando los valores de r g y b haces un cambio de contraste, mientras que con t1, t2 y t3 cambias el brillo.
Una vez creada la matriz con los puntos creamos la matriz en sí y se la asignamos a un ImageAttributes que posteriormente usaremos para dibujar la imagen con los nuevos valores:
Código:
ColorMatrix cm = new ColorMatrix(colorMatrixPoints);
ImageAttributes imgAttr = new ImageAttributes();
imgAttr.SetColorMatrix(cm);
Ahora solo nos queda dibujar la imagen original en una nueva imagen aplicandole el ImageAttributes que hemos creado previamente:
Código:
//Se supone que la imagen original está cargada en un Bitmap llamado Source
Bitmap bmpdest = new Bitmap(Source.Width, Source.Height, Source.PixelFormat);
Graphics g = Graphics.FromImage(bmpdest);
g.DrawImage(Source, new Rectangle(Point.Empty, bmpdest.Size), 0, 0, Source.Width, Source.Height, GraphicsUnit.Pixel, imgAttr);
g.Dispose();
imgAttr.Dispose();
Y con esto ya tienes tu imagen lista para salvar con el contraste y el brillo modificado.
DR GUSMAN. "
Gracias y saludos!!!