画像の取得

画像の取得

バッファを確保し、現在のライブ画像を取得します。

まず、あらかじめ PUC_SetXferDataMode でデータ転送を圧縮モードに変更しておきます。

result = PUC_SetXferDataMode(hDevice, PUC_DATA_COMPRESSED);
if (PUC_CHK_FAILED(result))
{
        _tprintf(_T("PUC_SetXferDataMode error:%u\n"), result);
        return;
}

次に、 PUC_GetXferDataSize で現在の解像度に対するデータサイズを取得します。

result = PUC_GetXferDataSize(hDevice, PUC_DATA_COMPRESSED, &nDataSize);
if (PUC_CHK_FAILED(result))
{
    return;
}

注釈

  • 上記では圧縮画像のデータサイズを取得しています。PUC_DATA_DECOMPRESSED_GRAYを指定すると、ピクセルデータに変換後のデータサイズを取得できます。

  • PUC_GetXferDataSizeで取得したサイズでバッファを確保した場合、解像度の変更毎にバッファの再確保が必要になりますので、PUC_GetMaxXferDataSizeを使用してあらかじめ最大データサイズを確保する方法が効率的です。

次に、バッファを確保し画像を取得します。

PUC_XFER_DATA_INFO xferData = { 0 };

xferData.pData = new UINT8[nDataSize];

result = PUC_GetSingleXferData(hDevice, &xferData);
if (PUC_CHK_FAILED(result))
{
    return;
}

注釈

  • xferData.nDataSizeには実際に転送した画像サイズ、xferData.nSequenceNoにはシーケンス番号が格納されます。

  • 取得した画像は圧縮されているため、表示するにはデコードが必要です。