画面の一部をすばやく簡単にキャプチャする方法はありますか?getPixel は遅く、GetDIBits は最初は少し複雑に見えました
質問
Windows 上で getPixel を使用して、デバイス コンテキストを null にして画面の一部をキャプチャするコードをいくつか試行していました (ウィンドウの代わりに画面をキャプチャするため) が、非常に遅かったです。GetDIBits() は高速に実行できるようですが、少し複雑なようです...領域全体を配列に入れることができ、pixel[x][y] がピクセルの 24 ビット カラー コードを返すライブラリはあるのでしょうか。
それともそのようなライブラリはMacに存在しますか?それとも、Ruby や Python にはそれを実行できるライブラリがすでにあるのでしょうか?
解決
私はこれをやったことがありませんが、試してみたいと思います:
createcompatibledCを使用してメモリデバイスコンテキスト(DC)を作成します。デスクトップ(getDC(null))のデバイスコンテキストを渡します。
キャプチャする領域と同じサイズのビットマップ(CreateCompatibleBitMapを使用)を作成します。
作成したDCにビットマップを選択します(SelectObjectを使用)。
デスクトップDCから作成したDCまでBitBltを実行します(SRCCOPYフラグを使用)。
デバイス コンテキストの操作は、間違った順序で行うと GDI リークを引き起こす可能性があるため、使用するすべての GDI 関数に関するドキュメントを必ず読んでください (例:SelectObject、GetDC など)。
所属していません StackOverflow