Rubyを使用してWin32のBitBlt()を使用する方法を知っている人はいますか?宛先DC(デバイスコンテキスト)を使用する必要があるようですが、Rubyはそれをどのように処理できますか?GetPixel()を使用していますが、100ピクセルを取得するのにも非常に時間がかかります(約10秒かかります)。ありがとう。
4 に答える
すべての画像処理コードをC++でWin32実行可能ファイルとして記述し、それを別のプロセスとして起動するか、Win32APIクラスを使用してRubyから呼び出すのはどうですか?Rubyでクラッジを書くのではなく、この方法で行うのが理にかなっています。
私は同じようなことを見ていることに注意したいと思います。GetPixelはVistaでは非常に遅いです。そのAeroのものを使用している場合はこれが当てはまると判断しました。デスクトップテーマを「クラシック」設定の1つに設定すると、再び高速になります。そして、OPの推定値である約10秒は、信じられないかもしれませんが、間違いではありません。それは本当に非常に遅いです。
私もRubyでBitBltを探しています。私はそれを理解/書く必要があると思いますが、他の誰かがすでに例を投稿していることを望んでいました。
2番目のCarlの他の投稿:win32スクリーンショットを使用http://github.com/jarmo/win32screenshot
私はエドまでは行きません。通常のGUIで実行される比較的単純でありふれたことだけを実行したい場合があります。このため、そのようなライブラリはすでに存在しており、作成する必要はありません。
1つの例はwxRubyです。
私はそれをよく知らないのではないかと思いますが、おそらくそれはすでにいくつかの画面をつかむユーティリティメソッドを提供しています。