如何在Julia中打印具有指定RGB值的文本?
例如,假设我想使用以下颜色打印文本: R:0.5 G:0.8 B:0.1 我知道使用颜色()打印,但据我所知,它必须使用如何在Julia中打印具有指定RGB值的文本?,julia,Julia,例如,假设我想使用以下颜色打印文本: R:0.5 G:0.8 B:0.1 我知道使用颜色()打印,但据我所知,它必须使用符号来打印,我不知道如何为任何任意颜色创建一个符号,或者如果实际可行的话。可能: julia> function print_rgb(r, g, b, t) print("\e[1m\e[38;2;$r;$g;$b;249m",t) end print_rgb (generic function with 1 method) juli
符号来打印,我不知道如何为任何任意颜色创建一个符号,或者如果实际可行的话。可能:
julia> function print_rgb(r, g, b, t)
print("\e[1m\e[38;2;$r;$g;$b;249m",t)
end
print_rgb (generic function with 1 method)
julia> for i in 0:100
print_rgb(rand(0:255), rand(0:255), rand(0:255), "hello!")
end
你可以试试。您的规格是float,蜡笔要求规格为0-255,因此需要进行一些转换:
julia> import Pkg; Pkg.add("Crayons")
julia> using Crayons
julia> a = (0.5, 0.8, 0.1)
(0.5, 0.8, 0.1)
julia> b = round.(Int, a .* 255)
(128, 204, 26)
julia> print(Crayon(foreground = b) , "My color string.")
Crayons.jl
还支持字符串宏中的十六进制RGB规范:
julia> print(crayon"#80cc1a", "My color string.")
它不可能以跨平台友好的方式实现这一点,因此它没有在base Julia中提供。它有时可以工作,但对于大多数颜色,它只打印灰色文本或灰色框。你知道为什么它会这样工作吗?它的精确行为取决于你的终端模拟器。如果您的终端仿真器支持RGB颜色,这应该可以工作。