如何從HSL值創建C#顏色?從HSL值創建C#顏色
回答
Rich Newman創建了一個HSLColor類,可用於替代System.Drawing.Color。
這個類似乎工作*大部分時間*。我有一個問題,我有一個HSL顏色(210,45,72),這是一個藍色獲取輸出爲rgb(90,62,83),這是一個紅色。我試圖登上他的博客,但幾乎從不加載大聲笑。 – Sinaesthetic 2014-10-15 23:12:34
該類使用Color.GetBrightness方法,所以它實際上呈現的是[HSB](http://www.poynton.com/notes/colour_and_gamma/ColorFAQ.html#RTFToC36)顏色空間,而不是HSL。 – ironic 2015-05-17 09:14:55
不適用於#bbe30a和#320ae3。我只嘗試了兩個值並放棄。 – aloisdg 2016-06-11 14:26:59
添加下面的下面的行「使用」,在你的代碼文件命名空間:
using System.Runtime.InteropServices
,並以P/Invoke的,添加以下功能:
[DllImport("shlwapi.dll")]
public static extern int ColorHLSToRGB(int H, int L, int S);
在你想要的任何課程中。
如果您將色調,亮度和飽和度的顏色設置爲整數,則將這些值賦予該函數,然後將所需的RGB顏色作爲整數返回。 然後使用ColorTranslator.FromWin32將返回的rgb顏色作爲整數轉換爲System.Drawing.Color結構。
另一種方法是使用Color.FromArgb(Int32)重載方法,從該整數中創建所需顏色爲System.Drawing.Color結構。
另一種方式是創建ColorConverter類的一個實例,然後調用ConvertFrom方法,並給它的RGB顏色整數從ColorHLSToRGB函數返回,或者致電的ConvertTo方法用相同的第一參數,但在第二個參數輸入typeof(System.Drawing.Color)
。然後將返回的對象轉換爲System.Drawing.Color結構類型。
結果正是你正在尋找和預期的!
你也可以嘗試其他算法或方法,你可以搜索,找出並在互聯網上學習,如何將RGB顏色轉換爲整數爲System.Drawing.Color結構或如何將HLS值轉換爲三個整數System.Drawing.Color結構!
有幾件事要注意:'H','L'和'S'從0到240.請記住,0的亮度表示黑色,240表示白色,所以如果你想要一個純色'#F00')你需要將'L'設置爲120.另外值得注意的是:如果你打算使用Color.FromArgb(Int32)過載,顏色的alpha將爲0,這意味着它'將是透明的。 'ColorTranslator.FromWin32()'沒有這個問題。 – Nolonar 2017-05-10 15:13:29
- 1. 獲取顏色從HSL值在Flash
- 2. 從HSL獲取顏色名稱
- 3. 使用icCube HSL顏色公式設置amChart值的顏色
- 4. CSS - hsl或rgb(a)顏色
- 5. HSL顏色不正常
- 6. 色調滑塊與HSL顏色分類
- 7. 如何通過HSL顏色着色?
- 8. 使用顏色包從RGB值創建新顏色?
- 9. 創建顏色調色板從基色
- 10. jquery顏色,RGB到HSL和後退
- 11. jQuery的顏色插件HSL模式
- 12. HSL顏色之間的距離測量
- 13. lumMod/lumOff獲取新的HSL顏色
- 14. HSL RGB自動顏色與AngularJS
- 15. 創建一個wpf漸變畫筆編輯器。 (RGB顏色到HSL/HSV)
- 16. 我如何將HSL和RGB顏色表示爲C#中的類?
- 17. CSS:如何僅使用hsl顏色更改一個值
- 18. 如何給HSL顏色值的SVG元素
- 19. 在C#中創建類RGB顏色#
- 20. 創建兩種顏色在C++
- 21. 從GDALDataSet創建RBG顏色QImage
- 22. 如何從RGB顏色創建位圖
- 23. 平均圓形值(特別是HSL顏色方案中的色調)
- 24. C#讓所有的顏色從顏色
- 25. 從名稱的C#顏色值
- 26. 使用依賴屬性從四個滑塊創建顏色C#
- 27. 創建jvectormap區域顏色
- 28. CSS創建顏色漸變
- 29. 用UIColor創建顏色
- 30. 創建展開顏色
另請參閱:http://stackoverflow.com/questions/2942/hsl-in-net/2504318#2504318 – 2010-11-03 13:50:29