FAQ
Color オブジェクトの利用

ナレッジ番号:5272 | 登録日:2023/07/26 | 更新日:2023/12/28

概要

このサンプルでは ArcObjects がサポートしている様々なカラーのタイプ(RGB、CMYK、HSV、HLS) を作成する方法について説明します。カラー タイプに応じたさまざまなクラスが用意されており、これらのクラスを使用することで最も適切なカラー モデルに沿って色を作成することが可能になります。

RGB カラー モデル

RGB は光の三原色である赤、緑、青に基づいています。

  • 赤、緑、青の光線は、同じ場所に集まると白い光が作られます。RGB カラー モデルはそれゆえ、 "加法混色" と呼ばれ、要素を合計することで光を作成します。
  • 完全に飽和した色(255,255,255)の等値の三組は白を照らします、そして、逆に 0 の値は何も照らしません。つまり黒となります。
  • 0 と 255 の間でそれぞれ等しい値を設定すると、灰色の色合いが生まれます。

 以下のコード例は、ArcObjects で RGB に基づいた色を作成する機能を示しています。

public static ESRI.ArcGIS.Display.IRgbColor MakeRGBColor(byte R, byte G, byte B)
{
    ESRI.ArcGIS.Display.RgbColor RgbClr = new ESRI.ArcGIS.Display.RgbColorClass();
    RgbClr.Red = R;
    RgbClr.Green = G;
    RgbClr.Blue = B;
    return RgbClr;
}
Public Shared Function MakeRGBColor(ByVal R As Byte, ByVal G As Byte, ByVal B As Byte) As ESRI.ArcGIS.Display.IRgbColor
     Dim RgbClr As ESRI.ArcGIS.Display.RgbColor = New ESRI.ArcGIS.Display.RgbColorClass
     With RgbClr
         .Red = R
         .Green = G
         .Blue = B
     End With
     Return RgbClr
End Function

CMYK カラー モデル

CMYK は、シアン、マゼンタ、黄、黒の 4 色の構成要素に基づくカラーモデルです。 CMYK モデルは RGB と異なり、"減法混合" と呼ばれ、すべての構成要素を合計す ることで光の欠如(黒)を作成します。

  •  CMYK は、色のプレートを用いたオフセット印刷を含む電子出版プロセスのための業界標準カラー モデルです。
  •  印刷プロセスの過程で、点のサイズ、または 4 つのプロセスカラーのそれぞれに対して指定されるハーフトーン・スクリーン・パーセンテージによって、インクの範囲が制御されます。

以下のコード例は、ArcObjectsで CMYK に基づいた色を作成する機能を示しています。

public static ESRI.ArcGIS.Display.ICmykColor MakeCmykColor(byte C, byte M, byte Y,
    byte k)
{
    ESRI.ArcGIS.Display.CmykColor CmykClr = new ESRI.ArcGIS.Display.CmykColorClass();
    CmykClr.Cyan = C;
    CmykClr.Magenta = M;
    CmykClr.Yellow = Y;
    CmykClr.Black = k;
    return CmykClr;
}
Public Shared Function MakeCmykColor(ByVal C As Byte, ByVal M As Byte, ByVal Y As Byte, ByVal k As Byte) As ESRI.ArcGIS.Display.ICmykColor
     Dim CmykClr As ESRI.ArcGIS.Display.CmykColor = New ESRI.ArcGIS.Display.CmykColorClass
     With CmykClr
         .Cyan = C
         .Magenta = M
         .Yellow = Y
         .Black = k
     End With
     Return CmykClr
End Function

HSV カラー モデル

HSV は色相、彩度、色値の色座標系によって計算されるモデルです。そこでは色空間が一つの円錐によって表現されています。

  •  彩度が 100 であるとき、色は完全に飽和しています。
  •  彩度が 0 であるとき、色は指定された値の純粋な灰色の色合いです。
  •  色値が 100 であり、何らかの彩度が指定されたとき、淡い色が生まれます。
  •  色値が 100 未満であり、ひとつの彩度が指定されたとき、ひとつの色調が生まれます。
  •  色値が 0 であるとき、色は黒になります。

 以下のコード例は、ArcObjects で HSV に基づいた色を作成する機能を示しています。

public static ESRI.ArcGIS.Display.IHsvColor MakeHSVColor(byte H, byte S, byte V)
{
    ESRI.ArcGIS.Display.HsvColor HsvClr = new ESRI.ArcGIS.Display.HsvColorClass();
    HsvClr.Hue = H;
    HsvClr.Saturation = S;
    HsvClr.Value = V;
    return HsvClr;
}
Public Shared Function MakeHSVColor(ByVal H As Byte, ByVal S As Byte, ByVal V As Byte) As ESRI.ArcGIS.Display.IHsvColor
    Dim HsvClr As ESRI.ArcGIS.Display.HsvColor = New ESRI.ArcGIS.Display.HsvColorClass
    With HsvClr
        .Hue = H
        .Saturation = S
        .Value = V
    End With
    Return HsvClr
End Function

HLS カラー モデル

HLS は、色相、明度、彩度の色座標系によって計算されるモデルです。そこでは色空間が両頭の円錐によって表現されています。

  • 明度が 0 であるとき、色は黒です。
  • 明度が 100 であるとき、色は白です。
  • 明度が 50 より大きいとき、淡い色が生まれます。
  • 明度が 50 未満であるとき、色調が生まれます。
  • 彩度が 100 であるとき、色は完全に飽和しています。
  • 彩度が 0 であるとき、色は指定された明度の純粋な灰色の色合いです。

以下のコード例は、ArcObjects で HLS に基づいた色を作成する機能を示しています。

public static ESRI.ArcGIS.Display.IHlsColor MakeHLSColor(byte H, byte L, byte S)
{
    ESRI.ArcGIS.Display.HlsColor HlsClr = new ESRI.ArcGIS.Display.HlsColorClass();
    HlsClr.Hue = H;
    HlsClr.Lightness = L;
    HlsClr.Saturation = S;
    return HlsClr;
}
Public Shared Function MakeHLSColor(ByVal H As Byte, ByVal L As Byte, ByVal S As Byte) As ESRI.ArcGIS.Display.IHlsColor
     Dim HlsClr As ESRI.ArcGIS.Display.HlsColor = New ESRI.ArcGIS.Display.HlsColorClass
     With HlsClr
         .Hue = H
         .Lightness = L
         .Saturation = S
     End With
     Return HlsClr
End Function

備考

各カラー タイプのインターフェイスについては、下記のページをご参照ください。
IRgbColor Interface
ICmykColor Interface
IHsvColor Interface
IHlsColor Interface

メタデータ

種類

製品