十六进制对到十六进制简写
我有一堆 Color
对象(.Net)。我想将它们转换为十六进制,这很简单,例如:
Dim clr As Color = Color.FromArgb(255, 0, 0)
Dim clrString = ColorTranslator.ToHtml(clr)
.Net 中是否有一种方法或通过 RegEx(或其他方式)可以确定是否为十六进制速记(例如 #F00
) 可用于指定的 Color
然后将其转换为该颜色?因此,对于可以有十六进制简写的颜色,请转换为该颜色,否则,请转换为十六进制对#FF0000
。
I have a bunch of Color
objects (.Net). I want to convert them to Hex, which is simple enough with something like:
Dim clr As Color = Color.FromArgb(255, 0, 0)
Dim clrString = ColorTranslator.ToHtml(clr)
Is there a way in .Net or through RegEx (or some other way) that I can determine if Hex shorthand (like #F00
) is available for the specified Color
and then convert it to that? So for colors that can have a Hex shorthand, convert to that, otherwise, convert to Hex Pair #FF0000
.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这使用 3 个反向引用来检查每个十六进制数字后面是否有一个副本。因此,任何具有 #xxyyzz(可以转换为 #xyz)模式的内容都会匹配。
This uses 3 back-references to check that each hex digit is followed by a copy. So anything with the pattern #xxyyzz (which can be converted to #xyz) matches.
此链接描述了速记十六进制表示法的工作原理。
简写十六进制表示法
因此,理论上,任何允许您分析十六进制 RGB 值并检测“重复双精度”字符值应该能够将其简化为十六进制速记。
干杯
This link describes how the Shorthand Hex Notation works.
Shorthand Hex Notation
So, in theory, any implementation that will allow you to analyze a Hex RGB value and detect "duplicate double" character values should be able to reduce it to a Hex Shorthand.
Cheers