如何在Julia中打印具有指定RGB值的文本?

如何在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

例如,假设我想使用以下颜色打印文本:

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)

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颜色,这应该可以工作。