ImageBuffer.Item Property

画像データのバイト数を取得、または設定します。

構文

[VB.NET]
Public Item( ByteIndex As Integer , LineIndex As Integer  ) As Byte
Public Item( ByteIndex As Integer  ) As Byte
[C#]
Public byte Item[ int ByteIndex, int LineIndex ]
Public byte Item[ int ByteIndex ]
パラメータ 説  明
ByteIndex 選択した画像、もしくは行に含まれるバイトのインデックスです。
LineIndex 選択した行のインデックスです。

備考

画像データは上下が逆になっています。一番下の行がラインインデックス0を持ち、その行の左端のピクセルがバイトインデックス0を持っています。バイトパーピクセルはそのImageBufferクラスライブラリリファレンス>クラス>ImageBufferのカラーフォーマットに依存します

サンプル

下記の例はイメージバッファのバイトアドレスを指定することで画像データにアクセスする方法を紹介しています。そして画像に明るさ(ブライトネス)を加えます。

[VB.NET]
Dim Buf As ImageBuffer Buf = IcImagingControl1.ImageActiveBuffer

Dim p As Integer
Dim imageSize As Integer imageSize = Buf.Lines * Buf.PixelPerLine * Buf.BitsPerPixel / 8
  For p = 0 To imageSize - 1
     Dim c As Integer

     ' バイト値を取得
     c = Buf(p)

     ' そこに明るさを加える
     c = c + 20
     If c > 255 Then c = 255

     ' バッファに書き込む
     Buf(p) = c
Next
[C#]
ImageBuffer Buf = ICImagingControl1.ImageActiveBuffer;

int p = 0;
int imageSize = Buf.Lines * Buf.PixelPerLine * Buf.BitsPerPixel / 8;
  for (p = 0; p < imageSize; p++)
{
     // バイト値を取得
     int c = Buf[p];

     // そこに明るさを加える
     c = c + 20;
     if (c > 255)
     {
         c = 255;
     }
 
     // バッファに書き込む
     Buf[p] = (byte)c;
}

他に行やその中のバイト値を指定して行う処理としては、以下の例のようにイメージバッファを反転させるというものもございます。

[VB.NET]
Dim Buf As ImageBuffer
Buf = IcImagingControl1.ImageActiveBuffer

Dim y As Integer
Dim x As Integer
Dim lineWidth As Integer lineWidth = Buf.PixelPerLine * Buf.BitsPerPixel / 8

For y = 0 To Buf.Lines - 1
     For x = 0 To lineWidth - 1
         ' カラーバリューを反転
         Buf(x, y) = 255 - Buf(x, y)
     Next
Next
[C#]
ImageBuffer Buf = ICImagingControl1.ImageActiveBuffer;

int y = 0;
int x = 0;
int lineWidth = Buf.PixelPerLine * Buf.BitsPerPixel / 8;

for (y = 0; y < Buf.Lines; y++)
{
     for (x = 0; x < lineWidth; x++)
     {
         // カラーバリューを反転
         Buf[x, y] = (byte)(255 - Buf[x, y]);
     }
}