0

Windows で getPixel を使用して画面の一部をキャプチャするコードをいくつか試していましたが、デバイス コンテキストは null で (ウィンドウではなく画面をキャプチャするため)、非常に低速でした。GetDIBits() は高速にできるようですが、少し複雑なようです... 領域全体を配列に入れることができるライブラリがあり、pixel[x][y] が 24 ビットの色を返すのだろうかピクセルのコード?

または、そのようなライブラリは Mac に存在しますか? あるいは、Ruby や Python にそれができるようなライブラリがすでにある場合はどうでしょうか?

4

1 に答える 1

3

私はこれをやったことがありませんが、私はしようとします:

  1. CreateCompatibleDC を使用してメモリ デバイス コンテキスト (DC) を作成し、デスクトップのデバイス コンテキスト (GetDC(NULL)) を渡します。

  2. キャプチャする領域と同じサイズのビットマップを (CreateCompatibleBitmap を使用して) 作成します。

  3. 作成した DC へのビットマップを選択します (SelectObject を使用)。

  4. デスクトップ DC から作成した DC に対して BitBlt を実行します (SRCCOPY フラグを使用)。

デバイス コンテキストを操作すると、間違った順序で作業を行うと GDI リークが発生する可能性があるため、使用するすべての GDI 関数 (SelectObject、GetDC など) に関するドキュメントを必ずお読みください。

于 2009-06-05T16:07:50.387 に答える