dsc_GetImageMem

静止画キャプチャデータをDIB形式でメモリに格納

dsc_GetImageMem data,size,head

data	: DIBを格納する変数
size	: DIBサイズを格納する変数
head	: ヘッダを格納する変数

(プラグイン / モジュール : hspdsc.dll)

解説

静止画キャプチャデータをDIB形式でメモリに格納します。
あらかじめ、DIBとヘッダのメモリをsdim などで確保してください。
サイズは dsc_GetImageMemSize() 関数で調べることができます。

ヘッダは BITMAPINFO 構造体と同じです。

サンプル

// SetDIBitsToDevice は gdi32.as に記述されています。

	sdim dibdata, dsc_GetImageMemSize(0)+1	; 下の対策のため +1
	sdim dibhead, dsc_GetImageMemSize(1)
	
	dibsize = dsc_GetImageMemSize(0)
	dsc_GetImageMem dibdata, dibsize, dibhead

	// 取得した画像の X ,Y サイズ
	x=lpeek(dibhead,4)
	y=lpeek(dibhead,8)

	// 元の画像
	screen 2,x,y : title "元の画像"
	SetDIBitsToDevice hdc,0,0,x,y,0,0,0,y,varptr(dibdata),varptr(dibhead),0
	redraw
	
	// 白黒化処理
	repeat dibsize/3 /* 24bit Color */
		// 閾値 チェック
		if peek(dibdata,cnt*3+2) > 160 { /* DIB は RGB ではなく BGR 順 */
			// 4byte ずつ 書き込みするため 確保バッファあらかじめ +1 する
			lpoke dibdata,cnt*3,16777215 
		}else{
			lpoke dibdata,cnt*3,0
		}
	loop

	// 加工後の画像
	screen 3,x,y : title "加工後の画像"
	SetDIBitsToDevice hdc,0,0,x,y,0,0,0,y,varptr(dibdata),varptr(dibhead),0
	redraw

関連項目

dsc_GetImageMemSizeDIB および ヘッダ のデータサイズを取得(関数)(hspdsc.dll)
dsc_GetImage静止画キャプチャし画像をウィンドウに転送(hspdsc.dll)
dsc_SaveBMP静止画キャプチャ画像をBMPで保存します(hspdsc.dll)
dsc_SetCapConfig静止画キャプチャーを利用可能にします(hspdsc.dll)

サンプル逆引き (1)

(HSP3) sample4 [MonoCapture].hsp

情報

プラグイン / モジュールhspdsc.dll
バージョン2.12
作成日2014/09/15
著作者イノビア(inovia)
URLhttps://hsp.moe/
備考HSP向け DirectShow キャプチャプラグイン
hspdsc.asをインクルード
グループDirectShowキャプチャ命令
対応環境
  • その他 : Windows Vista 以降、DirectX 10以上
移植のヒントWindows
hs ファイルhsphelp\hspdsc.hs