問題タブ [bitblt]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mfc - Aero/DWM で特定のウィンドウを正しくスクリーンキャプチャする方法
背景情報: この MFC アプリケーションをコーディングして長い間使用しており、ユーザーが Print Screen/Alt+Print Screen キーを押すと、スクリーンショットが自動的にハード ディスクに保存されます。Windows 7 RC を数週間使用している今まで、Aero に関連するものを使用するのを先延ばしにしてきました。
問題: 標準の GetDC/BitBlt メソッドを使用してウィンドウの内容をキャプチャしています。通常の全画面グラブを実行している間、この方法で問題はありません(開いているウィンドウの数などに関係なく)。前景ウィンドウ (Alt+PrintScreen) をキャプチャしようとすると、問題が発生します。以下に 2 つの例を示します。
例 1 http://indiecodelabs.com/extern/example1.jpg
例 2 http://indiecodelabs.com/extern/example2.jpg
ご覧のとおり、境界線があるべき場所にゴミが入っています。これは上部に向かってより顕著になり、両方のスクリーンショットでツールバーが重複していることがわかります。
私はこれについて何時間もグーグルで検索してきましたが、DWM では BitBtl/GetDC メソッドが機能しないという記事しか見つかりませんでしたが、私たち (開発者) が何をすべきかを説明する記事は 1 つも見つかりませんでした。 DWM で実行する場合、アプリで同じ機能を維持できます。
ヘルプ、ポインタ、提案は大歓迎です。
windows - bitblt でカーソルが消える
画面からピクセルをスクレイピングして(ビデオの形式で)カスタム画面共有形式に記録するWindowsアプリケーションがあります。問題は、ソフトウェア カーソルを使用しているマシンで、SRCCOPY|CAPTUREBLIT を使用して画面からブリットすると (階層化されたウィンドウもイメージに表示されるように)、カーソルが点滅することです。
単一のスクリーン ショットの場合、これは問題ではありませんが、複数のスクリーン ショットを立て続けに撮影すると、カーソルが非常に速く点滅し、完全に消えてしまうことがあります。
Windows Media Encoder SDK (codeproject の記事で説明されているように、以下を参照) の使用を検討しましたが、これはカーソルが点滅しないためですが、フレーム データに直接アクセスする方法はないようです。残念ながら、リアルタイム エンコーディングとカスタム フォーマットの両方が必要なため、Windows Media Encoder はこの目的には使用できません。
私は DirectX の方法 (同じ記事で説明されています。以下を参照) も試しましたが、同じ問題に悩まされているようです。
他の誰かがこの問題に遭遇しましたか? これを回避する方法があるはずです。多くの商用画面共有プログラムには、このような問題はありません。
記事: www.codeproject.com/KB/dialog/screencap.aspx
winapi - Bitbltの黒さ
私はこの次のコードを実行しています、
コードは問題ありません。しかし、私はこの長方形の周りに黒い色を見ています。何故ですか?これがサンプル画像です。
c++ - C++ での HBITMAP から Jpeg または Png への変換
HBITMAP変数を使用してpngまたはjpegファイルを書き込む方法を知っている人はいますか?
私は最初にGDI +でこれを行うことを検討しましたが、最小/最大が定義されていないことを示すエラーが表示されます(それらを定義すると、さらに問題が発生します)。次に、libpngのC ++バインディング(png ++)を調べましたが、サンプルを取得できませんでしたコンパイル。
ありがとう、
マイキー
objective-c - Objective-C/Cocoa での BitBlt() 相当
数年前、ビジュアル ベーシックでスクロール タイル 2D ビデオ ゲームを作成しました。Mac用のCocoaに翻訳しています。BitBltを使用できるフレームワークはありますか? または、OpenGL を使用せずに BitBlt に相当するものはありますか? ありがとう!
ruby - Rubyを使用してWin32のBitBltを使用するにはどうすればよいですか?
Rubyを使用してWin32のBitBlt()を使用する方法を知っている人はいますか?宛先DC(デバイスコンテキスト)を使用する必要があるようですが、Rubyはそれをどのように処理できますか?GetPixel()を使用していますが、100ピクセルを取得するのにも非常に時間がかかります(約10秒かかります)。ありがとう。
c# - Bitmap からコントロールへの C# Bitblit (Compact Framework)
スクリーンショットを画像ファイルに保存するために BitBlt を一度使用しました (.Net Compact Framework V3.5、Windows Mobile 2003 以降)。うまくいきました。ここで、ビットマップをフォームに描画したいと思います。を使用できthis.CreateGraphics().DrawImage(mybitmap, 0, 0)
ましたが、以前のように BitBlt で動作し、パラメーターを交換するだけでよいかどうか疑問に思っていました。だから私は書いた:
(そしてさらに下へ:)
しかし、フォームは真っ白のままです。何故ですか?私が犯したエラーはどこにありますか? ご意見ありがとうございます。乾杯、デビッド
c# - BitBlt コードが機能しない
Bitmap
このコードを使用して、を に直接描画しようとしていますPictureBox
:
しかし、 のコンテンツをレンダリングする代わりにBitmap
、ほぼ黒の固体ブロックを描画するだけです。上記のコードで SRCCOPY を WHITENESS に変更すると、予想どおり、真っ白なブロックが描画されるため、問題はソース hDC にあると確信しています。
注: 次のスニペットは問題なく動作するため、ビットマップ自体に問題はありません。
opengl - ハードウェアを介した OpenGL での 2D エンジンのスクロール?
2D タイル エンジンのボトム エンドとして OpenGL を使用しています。すべてが 2D の場合、特定の問題を最適化するのは簡単です。たとえば、スクロール。画面の特定のセクションを下からスクロールする必要があることがわかっている場合は、その部分をブリットするだけです。一度に1ピクセル以上移動しています。明示的なハードウェア サポート (古いニンテンドー ハードウェアを考えてください) がなければ、これには多くのピクセル書き込みが必要です。オンチップ bitblt は次善の策です。
基本的に、効率的なハードウェア ブリットとして VRAM テクスチャ レンダーを使用するために GL 呼び出しを最適化する方法を検討しています。
GL にフレームバッファをスクロールさせることは可能ですか、それとも、フレームごとにシーン全体をダブルバッファリングして再レンダリングすることをやめるべきですか?
どうも
winapi - BitBltが境界線を表示しないWin32ウィンドウキャプチャ
ウィンドウを.bmpファイルにキャプチャするためのc++コードをいくつか作成しました。
XPでは動作しますが、Vistaではウィンドウの境界が透明になります。
PrintWindowを使用すると問題は解決しますが、パフォーマンス上の理由から受け入れられません。
パフォーマンスの高いコード変更、または境界線を不透明にするために変更できる設定はありますか?