none
HBITMAPからBITMAP構造体を得る方法 RRS feed

  • 質問

  • いつも大変お世話になっています。

    Win7 32bit、Visual Studio 2008 C++で、開発しています。

    HBITMAPの情報をBITMAP構造体にセットする方法を質問させてください。

    ネットで調べたところ、このサイトを見つけました。

    >http://d.hatena.ne.jp/yu-hr/20090428/1240923806

    ---------------------------------------

    // hBmp という HBITMAP型の変数があるとします

    BITMAP bmp; if(!GetObject( hBmp, sizeof(BITMAP), &bmp)) { // 失敗return0; } // 成功

    ---------------------------------------

    上記のように試してみたのですが、

    <bmp>の内容のうち、<bmp.bmBits>が、0x00000000になっています。

    (その他の情報は正しくセットされています。)

    hBmpの確認のため、同時に下記を実行したところ、正しく保存されていました。

    ---------------------------------------

        CImage image;

        image.Attach(hBmp);
        image.Save(FileName);
        image.Detach();

    ---------------------------------------

    解決策をご教授いただけますでしょうか。よろしくお願いいたします。

    追伸:

    ちなみに、最終的に行いたいことは、

    HBITMAPからOpenCVのIplImageへの変換です。

    下記の部分でエラーとなっています。

    >memcpy(img->imageData,(char*)(bmp.bmBits),bmp.bmHeight*bmp.bmWidth*nChannels);


    2013年9月25日 2:03

回答

すべての返信