teclado subir puedo para pantalla escritorio descargar controlador con como brillo bajar ajustar c# gdi+

c# - subir - ¿Cómo ajusto el brillo de un color?



descargar controlador de brillo para windows 10 (6)

Me gustaría oscurecer un color existente para usarlo en un pincel degradado. ¿Alguien podría decirme cómo hacer esto por favor?

C #, .net 2.0, GDI +

Color AdjustBrightness(Color c1, float factor) { float r = ((c1.R * factor) > 255) ? 255 : (c1.R * factor); float g = ((c1.G * factor) > 255) ? 255 : (c1.G * factor); float b = ((c1.B * factor) > 255) ? 255 : (c1.B * factor); Color c = Color.FromArgb(c1.A,(int)r, (int)g, (int)b); return c ; }



Como un enfoque simple, puede simplemente factorizar los valores RGB:

Color c1 = Color.Red; Color c2 = Color.FromArgb(c1.A, (int)(c1.R * 0.8), (int)(c1.G * 0.8), (int)(c1.B * 0.8));

(que debería oscurecerlo, o, por ejemplo, * 1.25 para iluminarlo)


Convierta de RGB a HSV (o HSL), luego ajuste V (o L) hacia abajo y luego vuelva a convertir.

Si bien System.Drawing.Color proporciona métodos para obtener el tono (H), la saturación (S) y el brillo, no proporciona muchas conversiones, nada notable para crear una nueva instancia a partir de HSV (o valores de HSV), pero La conversión es bastante simple de implementar. Los artículos de wikipedia dan una cobertura decente, comenzando aquí: " HSL y HSV ".


Debe mantener un registro de que el valor no se extiende por debajo de 0 o por encima de 255

El mejor enfoque es utilizar Math.Max ​​/ Math.MIn

dim newValue as integer = ... ''correct value if it is below 0 or above 255 newValue = Math.Max(Math.Min(newValue,255),0)


Mientras que los métodos antes mencionados oscurecen el color, pero ajustan el tono de manera tal que el resultado no se ve muy bien. La mejor respuesta es usar la clase HSLColor de Rich Newman y ajustar la luminosidad.

public Color Darken(Color color, double darkenAmount) { HSLColor hslColor = new HSLColor(color); hslColor.Luminosity *= darkenAmount; // 0 to 1 return hslColor; }