静止画キャプチャデータを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_GetImageMemSize | DIB および ヘッダ のデータサイズを取得(関数) | (hspdsc.dll) |
| dsc_GetImage | 静止画キャプチャし画像をウィンドウに転送 | (hspdsc.dll) |
| dsc_SaveBMP | 静止画キャプチャ画像をBMPで保存します | (hspdsc.dll) |
| dsc_SetCapConfig | 静止画キャプチャーを利用可能にします | (hspdsc.dll) |
| プラグイン / モジュール | hspdsc.dll |
| バージョン | 2.12 |
| 作成日 | 2014/09/15 |
| 著作者 | イノビア(inovia) |
| URL | https://hsp.moe/ |
| 備考 | HSP向け DirectShow キャプチャプラグイン
hspdsc.asをインクルード |
| グループ | DirectShowキャプチャ命令 |
| 対応環境 |
|
| 移植のヒント | Windows |
| hs ファイル | hsphelp\hspdsc.hs |