Image.GetPixelArray

Image.GetPixelArray

説明

要求された各ピクセル、またはイメージの各ピクセルに対する RGBA 値を含む 2D 配列を戻します。

警告:大きなイメージのピクセル配列全体を取得する場合、RAM が不足するとエラーになる可能性があります。大きなイメージを扱う場合は、一度に 1 行または 1 列ずつ読み取ることをお勧めします。

C#構文

Object Image.GetPixelArray( Object in_saPositionArray );

スクリプト構文

oArray = Image.GetPixelArray( [PositionArray] );

戻り値

各ピクセルに対する正規化 RGBA 値を含む 2D SAFEARRAY(Arrayを参照)。最初の次元には各ピクセルの RGBA 値が含まれ、2 番目の次元にはイメージの左下から行ごとに並んだピクセルが含まれます。

パラメータ

パラメータ タイプ 説明
PositionArray SAFEARRAY(Arrayを参照) 希望の各ピクセルの座標をリストした1D 配列または 2D 配列

1. VBScript の例

'

' This example illustrates how to retrieve the PixelArray using a 

' 2-dimensional pixel position array.

'

' This is an example of a huge JPG image that would be too large 

' to read with a single call to GetPixelArray. Instead we will 

' request only a subset of pixel values.

'

CreateImageClip "$SI_HOME\Data\XSI_SAMPLES\Pictures\jio.jpg"

SelectObj "Clips.jio_jpg"

set oImageClip = Selection(0)

set oImage = oImageClip.GetImage()

' Request the values of 4 pixels of the first column of the image, 

' starting at the bottom pixel and moving upwards

dim aPixelWanted(1,3)

aPixelWanted(0,0) = 0 : aPixelWanted(1,0) = 0

aPixelWanted(0,1) = 0 : aPixelWanted(1,1) = 1

aPixelWanted(0,2) = 0 : aPixelWanted(1,2) = 2

aPixelWanted(0,3) = 0 : aPixelWanted(1,3) = 3

rgba = oImage.GetPixelArray( aPixelWanted )

for i=LBound(rgba,2) to UBound(rgba,2)

	LogMessage "Pixel i :" & i

	LogMessage "R :" & rgba(0,i)

	LogMessage "G :" & rgba(1,i)

	LogMessage "B :" & rgba(2,i)

	LogMessage "A :" & rgba(3,i)

next

2. JScript の例

/*

	This example illustrates how to retrieve the PixelArray using a 

	1-dimensional pixel position array.

*/

CreateImageClip("$SI_HOME\\Data\\XSI_SAMPLES\\Pictures\\jio.jpg", null, null);

SelectObj("Clips.jio_jpg", null, null);

var oImageClip = Selection(0);

var oImage = oImageClip.GetImage()

// Request the values of 4 pixels of the first column of the image, 

// starting at the bottom pixel and moving upwards

var aPixelWanted = new Array();

aPixelWanted[0] = 0;  aPixelWanted[1] = 0;

aPixelWanted[2] = 0;  aPixelWanted[3] = 1;

aPixelWanted[4] = 0;  aPixelWanted[5] = 2;

aPixelWanted[6] = 0;  aPixelWanted[7] = 3;

var aRGBA = new VBArray(oImage.GetPixelArray( aPixelWanted ));

for (i = 0; i <= aRGBA.ubound(2); i++) 

{	LogMessage("Pixel i :"  + i);

	LogMessage("R :" + aRGBA.getItem(0,i));

	LogMessage("G :" + aRGBA.getItem(1,i));

	LogMessage("B :" + aRGBA.getItem(2,i));

	LogMessage("A :" + aRGBA.getItem(3,i));

}