Class: Miyako::Color
Overview
==色を管理するクラス
色情報は、[r(赤),g(緑),b(青),a(透明度)]、[r,g,b,a(透明度)]の2種類の配列
それぞれの要素の値は0〜255の範囲
4要素必要な色情報に3要素の配列を渡すと、自動的に4要素目(値は255)が挿入される
(注)本クラスで採用する透明度と、画像が持つ透明度とは別物
Constant Summary collapse
- @@symbol2color =
{:black => [ 0, 0, 0, 255], :white => [255,255,255, 255], :blue => [ 0, 0,255, 255], :green => [ 0,255, 0, 255], :red => [255, 0, 0, 255], :cyan => [ 0,255,255, 255], :purple => [255, 0,255, 255], :yellow => [255,255, 0, 255], :light_gray => [200,200,200, 255], :half_gray => [128,128,128, 255], :half_blue => [ 0, 0,128, 255], :half_green => [ 0,128, 0, 255], :half_red => [128, 0, 0, 255], :half_cyan => [ 0,128,128, 255], :half_purple => [128, 0,128, 255], :half_yellow => [128,128, 0, 255], :dark_gray => [ 80, 80, 80, 255], :dark_blue => [ 0, 0, 80, 255], :dark_green => [ 0, 80, 0, 255], :dark_red => [ 80, 0, 0, 255], :dark_cyan => [ 0, 80, 80, 255], :dark_purple => [ 80, 0, 80, 255], :dark_yellow => [ 80, 80, 0, 255]}
Class Method Summary collapse
-
.[](name, alpha = nil) ⇒ Object
===シンボルから色情報を取得する name::色に対応したシンボル(以下の一覧参照)。存在しないシンボルを渡したときはエラーを返す 返却値::シンボルに対応した4要素の配列.
-
.[]=(name, value) ⇒ Object
- ===Color.[]メソッドで使用できるシンボルと色情報との対を登録する name
- 色に対応させるシンボル value
色情報を示す3〜4要素の配列。3要素のときは4要素目を自動的に追加する.
-
.to_rgb(v, alpha = nil) ⇒ Object
===様々な形式のデータを色情報に変換する v::変換対象のインスタンス。変換可能な内容は以下の一覧参照 alpha::透明度。デフォルトはnil.
-
.to_s(cc) ⇒ Object
- ===色情報をColor.[]メソッドで使用できるシンボルと色情報との対を登録する cc
- 色情報(シンボル、文字列) value
色情報を示す3〜4要素の配列。3要素のときは4要素目を自動的に追加する.
Class Method Details
.[](name, alpha = nil) ⇒ Object
===シンボルから色情報を取得する name::色に対応したシンボル(以下の一覧参照)。存在しないシンボルを渡したときはエラーを返す 返却値::シンボルに対応した4要素の配列
- シンボル
色配列([赤,緑,青,透明度])
:black:: [ 0, 0, 0, 255] :white:: [255,255,255, 255] :blue:: [ 0, 0,255, 255] :green:: [ 0,255, 0, 255] :red:: [255, 0, 0, 255] :cyan:: [ 0,255,255, 255] :purple:: [255, 0,255, 255] :yellow:: [255,255, 0, 255] :light_gray:: [200,200,200, 255] :half_gray:: [128,128,128, 255] :half_blue:: [ 0, 0,128, 255] :half_green:: [ 0,128, 0, 255] :half_red:: [128, 0, 0, 255] :half_cyan:: [ 0,128,128, 255] :half_purple:: [128, 0,128, 255] :half_yellow:: [128,128, 0, 255] :dark_gray:: [ 80, 80, 80, 255] :dark_blue:: [ 0, 0, 80, 255] :dark_green:: [ 0, 80, 0, 255] :dark_red:: [ 80, 0, 0, 255] :dark_cyan:: [ 0, 80, 80, 255] :dark_purple:: [ 80, 0, 80, 255] :dark_yellow:: [ 80, 80, 0, 255]
87 88 89 90 91 |
# File 'lib/Miyako/API/color.rb', line 87 def Color.[](name, alpha = nil) c = (@@symbol2color[name.to_sym].dup or raise MiyakoError, "Illegal Color Name! : #{name}") c[3] = alpha if alpha return c end |
.[]=(name, value) ⇒ Object
===Color.[]メソッドで使用できるシンボルと色情報との対を登録する
- name
色に対応させるシンボル
- value
色情報を示す3〜4要素の配列。3要素のときは4要素目を自動的に追加する
96 97 98 99 |
# File 'lib/Miyako/API/color.rb', line 96 def Color.[]=(name, value) @@symbol2color[name.to_sym] = value @@symbol2color[name.to_sym] << 255 if value.length == 3 end |
.to_rgb(v, alpha = nil) ⇒ Object
===様々な形式のデータを色情報に変換する v::変換対象のインスタンス。変換可能な内容は以下の一覧参照 alpha::透明度。デフォルトはnil
- インスタンス
書式
- 配列
最低3要素の数値の配列
- 文字列
”#RRGGBB"で示す16進数の文字列、もしくは"red"、"black"など。使える文字列はColor.[]で使えるシンボルに対応
- 数値
32bitの値を8bitずつ割り当て(aaaaaaaarrrrrrrrggggggggbbbbbbbb)
- シンボル
Color.[]と同じ
110 111 112 113 114 |
# File 'lib/Miyako/API/color.rb', line 110 def Color::to_rgb(v, alpha = nil) c = (v.to_miyako_color or raise MiyakoError, "Illegal parameter") c[3] = alpha if alpha return c end |