logo

ジュリアで16進数RGBコード(HEX)を使用する方法 📂ジュリア

ジュリアで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

併せて見る