¿Cómo puedo crear un color C# a partir de los valores HSL?Creación de un color C# a partir de los valores HSL
Respuesta
Rich Newman ha creado una clase HSLColor que se puede utilizar en lugar de System.Drawing.Color.
Esta clase parece funcionar * la mayor parte del tiempo *. Tengo un problema en el que tengo un color HSL (210,45,72) que es azul y se obtiene como rgb (90,62,83) que es rojo. Estoy tratando de entrar en su blog, pero casi nunca carga jajaja. – Sinaesthetic
Esta clase usa el método Color.GetBrightness, por lo que presenta el espacio de color [HSB] (http://www.poynton.com/notes/colour_and_gamma/ColorFAQ.html#RTFToC36), no HSL. – ironic
No funciona para # bbe30a y # 320ae3. Intenté solo dos valores y renuncié. – aloisdg
Añadir la siguiente línea a la "usando" espacios de nombres en el archivo de código:
using System.Runtime.InteropServices
y con P/Invoke, agregue la siguiente función:
[DllImport("shlwapi.dll")]
public static extern int ColorHLSToRGB(int H, int L, int S);
En cualquier clase que desee en su proyecto.
Si tiene el color en tono, luminancia y saturación como números enteros, dé estos valores a esa función y el color RGB deseado se devolverá como entero. Luego use ColorTranslator.FromWin32 para traducir el color rgb devuelto como un entero a la estructura System.Drawing.Color.
Otra forma es utilizar el método de sobrecarga Color.FromArgb (Int32), para crear el color que desee como estructura System.Drawing.Color a partir de ese entero.
Otra forma es crear una instancia de ColorConverter clase, y luego llamar ConvertFrom método, y darle el número entero de color RGB devuelve desde la función ColorHLSToRGB, o llame ConvertTo método con el mismo primero argumento, pero en el segundo argumento ingrese typeof(System.Drawing.Color)
. A continuación, convierta el objeto devuelto a System.Drawing.Color structure type.
¡El resultado es exactamente lo que está buscando y esperando!
También puede probar otros algoritmos o formas en que puede buscar, averiguar y aprender en Internet, acerca de cómo convertir el color RGB como un número entero a System.Drawing.Color structure O cómo convertir valores HLS en tres enteros a System.Drawing.Color estructura!
Un par de cosas a tener en cuenta: 'H',' L' y 'S' van de 0 a 240. Tenga en cuenta que una luminancia de 0 significa negro y 240 significa blanco, por lo que si desea un color puro (como '# F00') necesita establecer' L' en 120. También vale la pena señalar: si va a utilizar la sobrecarga 'Color.FromArgb (Int32)', el color tendrá un alfa de 0, lo que significa que ' ll ser transparente. 'ColorTranslator.FromWin32()' no tiene ese problema. – Nolonar
- 1. Cómo dar valor de color HSL a un elemento SVG
- 2. En CSS, ¿los valores de HSL pueden ser flotantes?
- 3. ¿Cómo puedo usar el espacio de color HSL en Java?
- 4. cómo extraer r, g, b, a partir de los valores de color CSS?
- 5. Java: creación de un objeto de subclase a partir de un objeto principal
- 6. Asignación de una lista de valores numéricos a los colores
- 7. Creación de objetos BSON a partir de la cadena JSON
- 8. Rieles: creación de una etiqueta de selección a partir de un hash de objeto
- 9. Creación de cadenas inseguras a partir de char []
- 10. Ajustaciones de imagen HSL en la GPU
- 11. Creación de videos a partir de series de imágenes?
- 12. Creación automatizada de PDF a partir de la dirección URL
- 13. Diagrama de bloques de función de creación automática a partir del código ansi c
- 14. Crear un rango de cadenas a partir de los valores finales
- 15. Creación de objetos con Guava a partir de los archivos de propiedades
- 16. automática la creación de tablas en Word a partir de un documento de Excel
- 17. Función que convierte los valores de color hexadecimales en un nombre de color aproximado?
- 18. Valor RGB para el convertidor HSL
- 19. Creación rápida de propiedades de C# a partir de las variables
- 20. Creación de un PDF a partir de un Informe RDLC en segundo plano
- 21. Obtención de un esquema de color a partir de una imagen
- 22. Creación de un IPEndPoint a partir de un nombre de host
- 23. Creación de un servicio web simulado a partir de un archivo WSDL en Python
- 24. C: Creación de lista ordenada al marcar 2 valores
- 25. Crear un generador de color a partir de un mapa de colores determinado en matplotlib
- 26. ¿Existe una alternativa rápida a la creación de un Texture2D a partir de un objeto Bitmap en XNA?
- 27. Lectura de un archivo XML a partir de los recursos
- 28. ¿Por qué no funciona este código Javascript RGB a HSL?
- 29. Eliminar valores cero a partir de una matriz PHP
- 30. ¿Cómo puedo crear una matriz a partir de los valores de la clave de otra matriz?
Véase también: http://stackoverflow.com/questions/2942/hsl-in-net/2504318#2504318 –