要求された各ピクセル、またはイメージの各ピクセルに対する RGBA 値を含む 2D 配列を戻します。
警告:大きなイメージのピクセル配列全体を取得する場合、RAM が不足するとエラーになる可能性があります。大きなイメージを扱う場合は、一度に 1 行または 1 列ずつ読み取ることをお勧めします。
Object Image.GetPixelArray( Object in_saPositionArray ); |
oArray = Image.GetPixelArray( [PositionArray] ); |
各ピクセルに対する正規化 RGBA 値を含む 2D SAFEARRAY(Arrayを参照)。最初の次元には各ピクセルの RGBA 値が含まれ、2 番目の次元にはイメージの左下から行ごとに並んだピクセルが含まれます。
パラメータ | タイプ | 説明 |
---|---|---|
PositionArray | SAFEARRAY(Arrayを参照) | 希望の各ピクセルの座標をリストした1D 配列または 2D 配列 |
' ' 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 |
/* 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)); } |