GETPIXELSRGB

グラフィックス・サブルーチン:複数のピクセルの RGB 色値を返します。

モジュールUSE DFLIB

形式

CALL GETPIXELSRGB (n, x, y, color)

n
(入力) INTEGER(4)。得たいピクセルの数。他の引数の要素数を設定します。

x, y
(入力) INTEGER(2)。得たいピクセルのビューポート座標を含む並行配列。

color
(出力) INTEGER(4)xy にあるピクセルの RGB 色値を書き込む配列。

GETPIXELSRGB は,2 つの入力配列 xy で指定されたピクセルの RGB 色値を配列 color に書き込みます。これらの配列は平行です。各 3 つの配列の第 1 要素は,1 ピクセルを参照し,第 2 要素は次のピクセルを参照します。

各 RGB 色値では,3 つの色,赤,緑,青のそれぞれは 8 ビット値 (2 つの 16 進数) で表されます。GETBKCOLORRGB で取り出した値は,赤が最も右のバイトで続いて緑,青の順になります。RGB 色値の内部構造は以下のとおりです。

最大値は,3 つの要素の各々のが最大の 2 進 1111111 (16 進 FF) の最大の色強度に対応します。たとえば,#0000FF は赤の最大強度,#00FF00 は緑の最大強度,#FF0000 は青の最大強度,#FFFFFF は 3 つすべての最大強度 (結果として明るい白) になります。

ピクセルがクリッピング領域外にある場合,配列 color に置かれる値は未定義です。n が 1 より小さい値で GETPIXELSRGB を呼び出した場合,無視されます。GETPIXELSRGB は,GETPIXELRGB で個別に呼び出すよりも複数のピクセル色指標を得るより早い方法です。GETPIXELSRGB は,複数のピクセルの True Color 値の配列を返します。この値は,SETPIXELSRGBSETCOLORRGBSETBKCOLORRGB,または SETTEXTCOLORRGB で設定されます。これは,ピクセルの位置と現在の画面の構成に依存します。

SETPIXELSRGB (と他の SETCOLORRGBSETBKCOLORRGBSETTEXTCOLORRGB のような RGB 色選択関数) は,全利用可能範囲から選択された値に色を設定します。非 RGB 色関数 (SETPIXELSSETCOLORSETBKCOLOR,および SETTEXTCOLOR) は, True Color 値ではなく色指標を使います。色指標を使う場合,パレットで利用可能な色に制限されます。最大で 256 色です。幾つかのディスプレイ・アダプタ (SVGA または True Color) は 262,144 (256K) 色以上を作成する機能を持っています。すべての利用可能な色を参照するには,非 RGB 色関数でパレット指標を指定するのではなく,RGB 色関数で明示的に RGB 色値を指定する必要があります。

互換性

STANDARD GRAPHICS QUICKWIN GRAPHICS LIB

関連情報

GETPIXELRGB, GETPIXELRGB_WGETPIXELSSETPIXELSRGBSETPIXELS

	! QuickWin または Standard Graphics アプリケーションでビルドします。
	USE DFLIB
	INTEGER(4) color(50), result
	INTEGER(2) x(50), y(50), status
	TYPE (xycoord) pos

	result = SETCOLORRGB(#FF)
	CALL MOVETO(INT2(0), INT2(0), pos)
	status = LINETO(INT2(100), INT2(200))

	! ビューポートの 30 行の 50 ピクセルを得ます。
	DO i = 1, 50
	  x(i) = i-1
	  y(i) = 30
	END DO
	CALL GETPIXELSRGB(300, x, y, color)
	! 30 ピクセルを下に移動し,ピクセルを再表示します。
	DO i = 1, 50
	  y(i) = y(i) + 30
	END DO
	CALL SETPIXELSRGB (50, x, y, color)
	END