Processing

PythonでProcessing Color Creating and Reading red()

色から赤の値を抽出し、現在のcolorMode()に合わせてスケーリングする。値は常に float で返されるため、int 値に代入しないように注意。

red()関数は使いやすく理解しやすいが、ビットマスキングと呼ばれる手法に比べて遅いのが難点だ。colorMode(RGB, 255)で作業する場合、ビットマスクを使って他の色成分を取り除くことで、red()と同じ結果をより高速に得ることができる。たとえば、次の2行のコードは、色値cの青の値を取得する同等の手段。

r1 = red(c) # シンプルだが、計算に時間がかかる
r2 = c >> 16 & 0xFF # 計算が非常に速い

# 構文
# red(rgb)
#
# パラメータ  
# rgb int:色データ型の任意の値

noStroke()
c = color(255, 204, 0)
fill(c)
rect(0, 0, width/2, height)
redValue = red(c)
print(redValue)
fill(redValue, 0, 0)
rect(width/2, 0, width/2, height)