タイトル : Re^2: GetDIbitsの使用方法について 投稿日 : 2014/03/16(Sun) 14:18 投稿者 : 還暦手習い
魔界の仮面弁士様 ご指導ありがとうございます。 この掲示板は時系列的に表示順がおかしくなっていますね。 昨日いただいたNo.15860が今日私が送信したNo.15861より後に表示されています。 私が送信する際、魔界の仮面弁士様のNo.15860がなかったため、ちぐはぐな投稿 になったことをお詫びします。 Picture1でGetDIBitsが成功できている?こちらでのSAMPLEを記載させていただ ます。 Sub DETECT_PIC(PIC As String) '※「PIC」は"Picture1"や"Picture2"を都度送っています。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Dim bmpinfo As BITMAPINFO Dim hbm As Long, ohbm As Long With Me '初期化 bmpinfo.biBitCount = 32 bmpinfo.biHeight = .Controls(PIC).ScaleHeight bmpinfo.biPlanes = 1 bmpinfo.biSize = 40 bmpinfo.biWidth = .Controls(PIC).ScaleWidth 'ビットマップ作成 hbm = CreateCompatibleBitmap(.Controls(PIC).hdc, .Controls(PIC).ScaleWidth, _ .Controls(PIC).ScaleHeight) '選択中のビットマップにはGetDIBitsが使えない 'ので空のビットマップをセット ohbm = SelectObject(.Controls(PIC).hdc, hbm) Debug.Print ohbm ←※ゼロ以外の数値が表示されます ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ '配列の宣言 ReDim pixel(.Controls(PIC).ScaleWidth - 1, .Controls(PIC).ScaleHeight - 1) As Long '高さを−にするとビットマップが逆転する bmpinfo.biHeight = -bmpinfo.biHeight '色を取得,Pixel配列には画像の色が入る GetDIBits .Controls(PIC).hdc, ohbm, 0, .Controls(PIC).ScaleHeight, _ pixel(0, 0), bmpinfo, 0 '※その他の処理でpixel()が利用できています。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |