我有一堆Color
對象(.Net)。我想將它們轉換爲十六進制,這與像很簡單:十六進制到六角形速記
Dim clr As Color = Color.FromArgb(255, 0, 0)
Dim clrString = ColorTranslator.ToHtml(clr)
是否有.NET或通過正則表達式(或其他方式)的方式,我可以決定是否六角簡寫(如#F00
)是否可用於指定Color
,然後將其轉換爲?因此,對於可以使用十六進制速記的顏色,轉換爲該速度,否則,轉換爲十六進制對#FF0000
。
感謝馬修。不幸的是,這隻能讓我使用'FF'和'00'工作。它不提供像Color.Olive這樣的顏色的匹配,它是'#808000',可以用十六進制速記寫成#880。 – 2010-06-05 00:11:44
做了一些更多的研究,結果是速記只能用十六進制寫成。你的代碼很棒!我還發現如果顏色值字節可以除以17並返回一個整數(即它不是浮點數),那麼它可以寫成簡寫。不知道背後的數學,但它很酷。 – 2010-06-05 03:10:21
17是0x11。所有具有加倍十六進制數字的字節都是其倍數。 – 2010-06-05 09:38:57