5

私はosxで画面をキャプチャしています

capturedImage = CGDisplayCreateImageForRect(displayID, CGRectMake(point.x - 4, point.y - 4, 8, 8));

これは、カーソルの下の画面の部分を返します。後で、カスタム画像カーソルを次のように設定しています。

[[[NSCursor alloc] initWithImage:img hotSpot:NSMakePoint(4, 4)] set];

カーソルを設定して画面を再度キャプチャしようとすると、問題が発生します。カーソルはフレームバッファに含まれています。これにより、キャプチャされた画像が、カーソルとして配置した画像と同じになります。カーソルを非表示にしてから画面をキャプチャしてから表示しようとしましたが、機能せず、カーソルがちらつきます。

さらに奇妙なことに、特定のラップトップではカーソル画像がキャプチャされませんが、同じ OS (Mountain Lion、Snow Leopard) を実行している他のラップトップではカーソル画像がキャプチャされます。

カーソルがフレーム バッファに含まれる原因は何ですか? カスタム カーソルなしでスクリーン キャプチャを保証する方法はありますか?

ありがとう

4

1 に答える 1

0

誰がカーソルをレンダリングするか、および純粋にハードウェア アクセラレーションでレンダリングされるかソフトウェアでレンダリングされるかによって異なります。これはハードウェアごとに、またOS間でも異なります... markkが提案したことを行います:デフォルトに設定します

于 2012-11-10T12:32:43.830 に答える