Come posso creare un colore C# dai valori HSL?Creazione di un colore C# dai valori HSL
risposta
Rich Newman ha creato una classe HSLColor che può essere utilizzata al posto di System.Drawing.Color.
Questa classe sembra funzionare * la maggior parte del tempo *. Sto avendo un problema in cui ho un colore HSL (210,45,72) che è un blu che viene emesso come rgb (90,62,83) che è un rosso. Sto cercando di ottenere sul suo blog ma non carica quasi mai lol. – Sinaesthetic
Questa classe utilizza Color.GetBrightness Method, quindi presenta effettivamente lo spazio colore [HSB] (http://www.poynton.com/notes/colour_and_gamma/ColorFAQ.html#RTFToC36), non HSL. – ironic
Non funziona per # bbe30a e # 320ae3. Ho provato solo due valori e fatto fuoco. – aloisdg
Aggiungere la seguente riga sotto al "usando" namespace nel file di codice:
using System.Runtime.InteropServices
e con P/Invoke, aggiungere la seguente funzione:
[DllImport("shlwapi.dll")]
public static extern int ColorHLSToRGB(int H, int L, int S);
In qualsiasi classe desideri nel tuo progetto.
Se si dispone del colore in tonalità, luminanza e saturazione come numeri interi, fornire questi valori a tale funzione e il colore RGB desiderato verrà restituito come intero. Quindi utilizzare ColorTranslator.FromWin32 per tradurre il colore rgb restituito come intero nella struttura System.Drawing.Color.
Un altro modo consiste nell'utilizzare il metodo di sovraccarico Color.FromArgb (Int32), per creare il colore desiderato come struttura System.Drawing.Color da quello intero.
altro modo è creare un'istanza di ColorConverter classe, e quindi chiamare ConvertFrom metodo, e dargli il numero intero colore RGB restituito dalla funzione ColorHLSToRGB, o chiamare ConvertTo metodo con lo stesso primo argomento, ma nel secondo argomento input typeof(System.Drawing.Color)
. Quindi converti l'oggetto restituito nel tipo di struttura System.Drawing.Color.
Il risultato è esattamente quello che stai cercando e atteso!
È inoltre possibile provare altri algoritmi o metodi che è possibile cercare, scoprire e imparare su Internet, su come convertire il colore RGB come intero in struttura System.Drawing.Color OPPURE come convertire i valori HLS come tre interi in Struttura System.Drawing.Color!
Un paio di cose da notare: 'H',' L' e 'S' vanno da 0 a 240. Ricorda che una luminanza di 0 significa nero e 240 significa bianco, quindi se vuoi un colore puro (come '# F00') è necessario impostare' L' su 120. Vale anche la pena notare: se si sta usando il sovraccarico 'Color.FromArgb (Int32)', il colore avrà un alfa di 0, il che significa che ' sarò trasparente 'ColorTranslator.FromWin32()' non ha questo problema. – Nolonar
- 1. Perché un assegnamento hsl CSS richiede un colore di riserva?
- 2. Valore RGB per convertitore HSL
- 3. Creazione di lumache dai titoli?
- 4. Come posso utilizzare lo spazio colore HSL in Java?
- 5. Aggiustamenti immagine HSL su GPU
- 6. HSB vs HSL vs HSV
- 7. C: creazione dell'elenco ordinato controllando 2 valori
- 8. C'è un cursore javascript (jquery) che limita i valori indipendentemente dai valori di visualizzazione?
- 9. Creazione di un albero pieghevole D3.js dai dati CSV
- 10. Django ChoiceField popolato dai valori di database
- 11. Creare un intervallo di stringhe dai valori finali
- 12. Creazione di un nuovo subvettore C++?
- 13. Creazione di un elenco distinto in C#
- 14. utilizzare LINQ al fine di selezionare un elenco dai valori sottolista abbinati in C#
- 15. Creazione di un array JSON in C#
- 16. Creazione di un risolutore crittografico in C++
- 17. Valori circolari medi (in particolare Hues nello schema di colori HSL)
- 18. Posso dipendere dai valori di GetHashCode() per essere coerenti?
- 19. filtro Angular.js dai valori esatti (uguaglianza rigorosa)
- 20. Equalizzazione dell'istogramma con correzione del colore (iPhone/obiettivo-C)
- 21. La struttura .Net Color utilizza uno spazio colore HSB o HSL?
- 22. Creazione di librerie OpenCV dai file di origine
- 23. Mappare un elenco di valori numerici a colori
- 24. Creazione di un diagramma di classe C++
- 25. Creazione di un elenco distinto di tipo personalizzato in C#
- 26. Navigazione nelle pagine di GridView dai valori di url
- 27. valori di colore RGB/RGBA a goniometro
- 28. Creazione di UIImmagine dai dati RGBA non elaborati
- 29. come rimuovere il carattere di sottolineatura dai valori di textarea?
- 30. Creazione di un istogramma di valori stringa in python
Vedere anche: http://stackoverflow.com/questions/2942/hsl-in-net/2504318#2504318 –