- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将Webcolor名称转换为DarkOrange,尽管理想情况下它将能够将小写(darkorange)解析为该颜色的十六进制#FF8C00
我注意到Go确实包含了返回RGBA的colornames包
import (
"golang.org/x/image/colornames"
"fmt"
)
func main() {
lightyellow := colornames.Lightyellow
fmt.Println("colour rgba: ", lightyellow)
}
但是我希望能够编写一个函数,可以传入webcolor名称,然后得出十六进制:
func convertWebToHex(webcolorname string)(hexcolor string){
PLEASE HELP WITH THIS
return hexcolor
}
最佳答案
简单的解决方案
软件包 golang.org/x/image/colornames
还包含一个导出的Map
变量,该变量将小写的颜色名称映射到 color.RGBA
。
因此,只需使用此映射即可查找名称的颜色,然后将RGB分量转换为十六进制表示形式:
func convertWebToHex(webcolorname string) (hexcolor string) {
c, ok := colornames.Map[webcolorname]
if !ok {
// Unknown name
return ""
}
return fmt.Sprintf("#%02X%02X%02X", c.R, c.G, c.B)
}
测试它:
names := []string{
"red",
"yellow",
"lightyellow",
"invalid",
}
for _, name := range names {
fmt.Printf("%-12s: %s\n", name, convertWebToHex(name))
}
哪个输出(在
Go Playground上尝试):
red : #FF0000
yellow : #FFFF00
lightyellow : #FFFFE0
invalid :
不区分大小写的解决方案
strings.ToLower()
将名称转换为小写,然后继续查找:
func convertWebToHex(webcolorname string) (hexcolor string) {
c, ok := colornames.Map[strings.ToLower(webcolorname)]
if !ok {
// Unknown name
return ""
}
return fmt.Sprintf("#%02X%02X%02X", c.R, c.G, c.B)
}
测试它:
names := []string{
"Red",
"yELLOW",
"LightYellow",
"invalid",
}
for _, name := range names {
fmt.Printf("%-12s: %s\n", name, convertWebToHex(name))
}
哪个输出(在
Go Playground上尝试):
Red : #FF0000
yELLOW : #FFFF00
LightYellow : #FFFFE0
invalid :
预先计算的十六进制值
color.RGBA
转换为十六进制字符串。
var colorMap = map[string]string{}
func init() {
for name, c := range colornames.Map {
colorMap[name] = fmt.Sprintf("#%02X%02X%02X", c.R, c.G, c.B)
}
}
func convertWebToHex(webcolorname string) (hexcolor string) {
// invalid color results in the zero value ""
return colorMap[strings.ToLower(webcolorname)]
}
测试和输出是相同的。在
Go Playground上尝试这个。
关于html - 在Go中将webcolor html颜色名称转换为十六进制的函数深橙色->#FF8C00,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64612950/
我阅读了 Orange 3 的文档。它说“小部件可以从 (Postgres) SQL 读取数据并传递查询。轴万岁!'。 Orange 3 还会支持 MySQl 编写 Sql 查询吗? 最佳答案 Ora
Eclipse 运行异常。它将每个日志项显示为警告(橙色)。此外,每个人的Time都是'?:??',PID是'?',Tag也是'?'。 截图如下 最佳答案 您的 Eclipse 或 SDK 似乎已过时
是否有 boost::irange 的扩展,它只接受一个 int 参数,使用 0 作为默认的 first 参数和给定的int 作为原始 irange 中的 last 参数? 例如,我已经可以这样做了:
有没有办法轻松地将给定的十六进制颜色代码分配给更一般的类别(红色、绿色、蓝色、黄色、橙色、粉色、黑色、白色、灰色……)? 比如 #ffcc55 -> 橙色,#f0f0f0 -> 白色,... 编辑:甚
如何变换:cut(Orange.class) -> cut(Orange) 剪切函数如下所示: protected T cut(Class fruitClass){ try {
我正尝试在我的 Mac 上使用 Orange3,但出现此错误:ImportError: cannot import name '_variable'。 这是我的设置: $ cd orange_play
我必须区分5种类型的图像,这些图像可能主要是红色,绿色,蓝色,橙色或黄色,而白色或黑色。我必须找到图像中突出的颜色。 图像来源是网络摄像头,因此实际颜色还取决于图像的照明度和距网络摄像头的距离。我的图
我有一个 Orange Pi Zero,我已经在上面刷了 DietPi。它没有 HDMI,所以我需要通过 Putty(或类似的程序)连接到它。问题是我无法获取设备的 IP 地址,这似乎是我通过 Put
我是一名优秀的程序员,十分优秀!