ruby 鞋子从 ask_color 转换为十六进制代码
ruby shoes convert to hex code from ask_color
我已经尝试了很多次来解决这个问题。请帮助我。
我创建了这段代码:
Shoes.app do
button "Color" do
@giv_color=ask_color("Seleziona un colore")
def rgb(r, g, b)
"##{to_hex r}#{to_hex g}#{to_hex b}"
end
def to_hex(n)
n.to_s(16).rjust(2, '0').upcase
end
para @giv_color # => this give me a result in rgb of a selected color ( es. rgb(20, 20, 40) )
para rgb(100, 200, 300) #=> this give me a correct hex color convetided
end
end
我不明白为什么我不自动将值 rgb 转换为十六进制代码。
经过多次尝试,我自己找到了解决方案。我没有意识到我从颜色选择中返回的是一个字符串,清理后者并转换为整数我已经解决了这个谜语。感谢您的帮助。
#!/usr/bin/ruby
Shoes.app do
button "Color" do
@giv_color=ask_color("Seleziona un colore")
def rgb(r, g, b)
"#{to_hex r}#{to_hex g}#{to_hex b}"
end
def to_hex(n)
n.to_s(16).rjust(2, '0').upcase
end
arr = @giv_color.inspect.tr('rgb()','').split(',') # clean string returned from selected color
a = arr[0].to_i #--|
b = arr[1].to_i # | ---- convert the string number on integer
c = arr[2].to_i #--|
hex = rgb(a, b, c)
para hex # <<--- return the hex code
end
end
这是一种将数字数组(如 [123, 22, 0])转换为其十六进制颜色代码 (#7b1600) 的简单方法。
def rgb array
"#%02x%02x%02x" % array
end
我已经尝试了很多次来解决这个问题。请帮助我。
我创建了这段代码:
Shoes.app do
button "Color" do
@giv_color=ask_color("Seleziona un colore")
def rgb(r, g, b)
"##{to_hex r}#{to_hex g}#{to_hex b}"
end
def to_hex(n)
n.to_s(16).rjust(2, '0').upcase
end
para @giv_color # => this give me a result in rgb of a selected color ( es. rgb(20, 20, 40) )
para rgb(100, 200, 300) #=> this give me a correct hex color convetided
end
end
我不明白为什么我不自动将值 rgb 转换为十六进制代码。
经过多次尝试,我自己找到了解决方案。我没有意识到我从颜色选择中返回的是一个字符串,清理后者并转换为整数我已经解决了这个谜语。感谢您的帮助。
#!/usr/bin/ruby
Shoes.app do
button "Color" do
@giv_color=ask_color("Seleziona un colore")
def rgb(r, g, b)
"#{to_hex r}#{to_hex g}#{to_hex b}"
end
def to_hex(n)
n.to_s(16).rjust(2, '0').upcase
end
arr = @giv_color.inspect.tr('rgb()','').split(',') # clean string returned from selected color
a = arr[0].to_i #--|
b = arr[1].to_i # | ---- convert the string number on integer
c = arr[2].to_i #--|
hex = rgb(a, b, c)
para hex # <<--- return the hex code
end
end
这是一种将数字数组(如 [123, 22, 0])转换为其十六进制颜色代码 (#7b1600) 的简单方法。
def rgb array
"#%02x%02x%02x" % array
end