ジュリアで16進数RGBコード(HEX)を使用する方法
コード
Juliaで色を取り扱うために提供されるパッケージはColors.jl
だ。可視化パッケージのPlots.jl
を読み込めば、Colors.jl
内の機能も一緒に使える。RGB空間を表す色コードには、RGB、BGR、RGB24、RGBX、XRGBがサポートされており、これらはAbstractRGB
のサブタイプだ。RGBAはRGBに透明度が加わったものだ。
julia> using Plots
julia> subtypes(AbstractRGB)
5-element Vector{Any}:
BGR
RGB
RGB24
RGBX
XRGB
julia> subtypes(AbstractRGBA)
2-element Vector{Any}:
BGRA
RGBA
文字列
plot()
関数の色を指定するキーワードに文字列として"#FF0000"
のように入力すると、16進RGBコードであるHEXコードを使える。下を見ればわかるが、文字列を入力しても良い理由は、plot()
が文字列を自動でパースしてくれるからと見られる。
using Plots
r = "#FF0000" # R빨간색 RGB(255, 0, 0)의 6자리 HEX 코드
g = "#00FF0033" # 투명도가 0.2인 초록색 RGBA(0, 255, 0, 0.2)의 8자리 HEX 코드
p = "#80F" # 보라색 RGB(255, 0, 136)의 3자리 HEX 코드
plot([1 2 3; 2 3 4], ones(2, 3), fillrange = 2,
fillcolor = [r g p],
label = [r g p])
パーシング
colorant"#FF0000"
のような形でHEXコードをパースできる。
julia> r = colorant"#FF0000" # R빨간색 RGB(255, 0, 0)의 6자리 HEX 코드
RGB{N0f8}(1.0,0.0,0.0)
julia> g = colorant"#00FF0033" # 투명도가 0.2인 초록색 RGBA(0, 255, 0, 0.2)의 8자리 HEX 코드
RGBA{N0f8}(0.0,1.0,0.0,0.2)
julia> p = colorant"#80F" # 보라색 RGB(255, 0, 136)의 3자리 HEX 코드
RGB{N0f8}(0.533,0.0,1.0)
julia> plot([1 2 3; 2 3 4], ones(2, 3), fillrange = 2,
fillcolor = [r g p])
parse(RGB, "#FF0000")
のようにパースすることもできる。
julia> parse(RGB, "#FF0000")
RGB{N0f8}(1.0,0.0,0.0)
julia> parse(RGBA, "#FF000080")
RGBA{N0f8}(1.0,0.0,0.0,0.502)
色名を取得
hex()
関数は色のHEXコードを文字列で返す。
julia> hex(colorant"red")
"FF0000"
julia> hex(colorant"rgb(0, 255, 128)")
"00FF80"
julia> hex(RGBA(1, 0.5, 0, 0.5), :RRGGBB)
"FF8000"
julia> hex(RGBA(1, 0.5, 0, 0.5), :RRGGBBAA)
"FF800080"
julia> hex(HSV(30,1.0,1.0), :AARRGGBB)
"FFFF8000"
併せて見る
環境
- OS: Windows11
- Version: Julia 1.9.4, Plots v1.39.0, Colors v0.12.10, FixedPointNumbers v0.8.4