hinekure.net が http://hspdev-wiki.net/ から自動クローリングした結果を表示しています。画像やリソースなどのリンクが切れています。予めご了承ください。
DevMagazin/色空間 - HSP開発wiki
トップ    編集凍結 差分バックアップ添付複製名前変更リロード   新規一覧単語検索最終更新   最終更新のRSS

色空間

color命令およびhsv命令で利用する3種の色空間について。
プログラムに必要な情報を選別して置いておければと思いますが、 まずは暫定的にWikipediaへのリンクを貼っておきます。

  • 赤(Red)
  • 緑(Green)
  • 青(Blue)

の3色の混ぜ合わせで色を表現する方法です。 HSPでは主にこの色空間を扱います。どの色も0〜255の整数で表します。
3色ともゼロの場合は色は黒になり、逆に255の場合は白になります。
色加算合成コピー(gmode 5)と色減算合成コピー(gmode 6)では、これらの値(R, G, B)を加算・減算しています。

Wikipedia「HSV色空間」

  • 色相(Hue)
  • 彩度(Saturation)
  • 明度(Value)

の3要素で色を表します。
HSPのhsvcolor命令では、色相は0〜191、彩度と明度は0〜255で表します。

色相は「赤」「緑」「青」などの色の違いを表すものです。
彩度や明度を一定にして色相を変化させるとトーンが近くなり、組み合わせやすくなるようです。

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 
 
 
 
 
 
 
 
 
 
 
/* 色相による違い */
    title "右が色相0。反時計回りに増え、1周で最大の191になります。"
    PI = atan(1) * 4
    sValue = 255 : vValue = 255
    repeat 1000
        hValue = 191.0 * cnt / 1000
        theta  = PI * cnt * 2 / 1000
        hsvcolor hValue, sValue, vValue
        line cos(theta)*100 + 200, -sin(theta)*100 + 200, cos(theta)*150 + 200, -sin(theta)*150 + 200
    loop
    stop

彩度は鮮やかさの指標です。この値が小さいと灰色に近い色になります。

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
/* 彩度による違い */
    title "左から右に向かって彩度が大きくなっています。"
    vValue = 255
 
*main
    redraw 0
    repeat 256
        sValue = cnt
        hsvcolor hValue, sValue, vValue
        line cnt, 30, cnt, 0
    loop
    redraw 1
    hValue = (hValue + 1) \ 192 // 色相の変化
    wait 8
    goto *main

明度は明るさの指標です。この値が小さいと暗い色、黒に近くなります。

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
/* 明度による違い */
    title "左から右に向かって明度が大きくなっています。"
    sValue = 255
 
*main
    redraw 0
    repeat 256
        vValue = cnt
        hsvcolor hValue, sValue, vValue
        line cnt, 30, cnt, 0
    loop
    redraw 1
    hValue = (hValue + 1) \ 192 // 色相の変化
    wait 8
    goto *main

HSPで直接利用することはできない色空間です。 Cyan, Magenta, Yellowの3色(いわゆる色の3原色)をベースとします。インクジェットプリンタのカラーインクもこの3色が基本となっていますよね。

RGBとCMYを相互に変換する数式がISP imaging-developersさんに掲載されています。

※公式BBSのスレッド「色を混ぜる」から引用

トップ    編集凍結 差分バックアップ添付複製名前変更リロード   新規一覧単語検索最終更新   最終更新のRSS
Last-modified: 2007-05-29 (火) 13:27:37 (2385d)