問題タブ [lockbits]

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.

0 投票する
1 に答える
692 参照

c# - マスク画像を使用した画像オーバーレイの削除

マスク(オーバーレイ画像)を使用してpng画像からオーバーレイを削除するプログラムを書いています

画像1と2を持っている画像3を達成したい.

私はロックビットを使ってみたり、いろいろ試してみましたが、正しい計算ができないと思います

rgbValues はオーバーレイのバイト配列で、rgbValues2 は指定されたイメージのバイト配列です。

ここに画像の説明を入力

0 投票する
1 に答える
1062 参照

c# - VM で Bitmap.LockBits が失敗する理由

アプリケーションを展開する前に、アプリケーションのスモーク テストに XP VM と Vista VM を使用しています。これらの VM はどちらも 32 ビット カラーを使用しています。違いがあるかどうかはわかりませんが、VirtualBoxを使用しています。各マシンには、2 GB の RAM、2 つのプロセッサも割り当てられます。XP には 128MB のビデオ RAM、Vista 256 (いずれの場合も、私が設定できる最大値) があります。マシンを実行するデスクトップには、6 コアと 16 GB の RAM があります。繰り返しますが、この情報が関連しているかどうかはわかりませんが、誰が知っていますか.

Bitmap以下は、aを直接操作できる一連のピクセルに変換するために使用する拡張メソッドです。結局のところ、スピードが必要だからです。私たちが必要としているのはスピードです。脂っこい、スピードが速い!そして、Bitmap.GetPixel はそのアンチテーゼです。

このコードは、以前に Windows 8 と Windows 7 を使用していたときと同様に、Windows 8.1 の「実際の」マシンで完全に機能します。

しかし、VM では、「パラメーターが無効です」というメッセージが表示されて失敗します。ArgumentException:

ドキュメントによると、これは、PixelFormat 値が特定のピクセルあたりのビット数ではない、 bitmap に対して正しくない PixelFormat が渡されたためです。

これらの VM に VS をインストールしていませんが、イメージを開いてその形式を印刷するテスト プログラムをドロップしました...これは予想どおりでしたPixelFormat.Format32bppArgb。3 つのシステムすべてで同じテスト イメージ セットを使用しています。

私の次の仮定は、VM のビデオ ハードウェアの制限ですが、結局のところ、3D シーンではなくビットマップであるということです...それで作業できるはずだと確信しています。

誰でもこの問題に光を当てることができますか? 「自分のマシンで動作する」ということだけに頼るのではなく、このコードの一部を適切にテストできるようにしたいのですが、とにかく VM に VS をインストールする必要はありません (確信があるわけではありません)。 XPにインストールします(Vistaよりも作業が目に見えて速いため、Vistaよりも好みます))。

他の誰かがこの問題に遭遇し、解決策を持っていることを願っています.Google検索は私を失望させました.

0 投票する
1 に答える
739 参照

c# - 1bpp Pixel Format の各ピクセルを移動する

C# での Lockbits メソッドの使用に関連する質問がありました.1bpp の画像があり、画像のすべてのピクセルにアクセスしようとしていますが、一部はまだ取り残されています。

このコードはすべてのピクセルを白にするはずです

0 投票する
2 に答える
1865 参照

c# - 明るさに応じて白と黒のピクセルを設定する

これらまたは類似の写真から針を見つけようとしています。

私の解決策は、写真の平均的な明るさを取り、それに応じて黒と白のピクセルを設定することです。結果は次のようになります。

そこに数字や譜表を見る必要はありません..針だけですが、そこにあるときは大きな問題ではありません. しかし、私はセットを使用してピクセル関数を取得し、その本当に遅いです。LockBitsメソッドについて何かを読んでいます。明るさを取得するために使用しますが、setpixelに正しく使用する方法がわかりません。誰でも私のコードを手伝ってもらえますか?..thnx

Edit2:これは私のコード全体です..

このビットマップにはカラー ピクセルが含まれています。理由を教えてください。

そして、黒ではなく赤を使用すると... (pixelUtil.SetPixel(x, y, Color.Red);) 私はこの面白い写真を手に入れました。(異なるサイズはOK..)

0 投票する
1 に答える
146 参照

c# - Lockbits と GetPixels の問題

Bitmap と GetPixels を使用して、画像内のすべてのピクセルを取得しようとしています。非常に非効率的であることがわかったので、LockBits を調べています。ビットをロックすると思われるものを作成しましたが、すべてのピクセルを取得できません。これまでの私のコードは...

ピクセルを取得する最良の方法であるため、Lockbits を使用したいと思います。何か助けはありますか?

ありがとうございました。

0 投票する
1 に答える
451 参照

c# - BitLock-GetPixels。時間と PixelFormat

さて、私は2つのプログラムを作成しました。を使用するGetPixelsものと使用するものLockBits。私のGetPixelsプログラムは次のとおりです...

参照されているストライプの写真は 200x200 jpg ですstrip.jpg として参照

これで、この画像を処理してすべてのピクセルを出力するのに約 20 秒かかります。素晴らしいですが、理論的には私のLockBitsの方が速いはずです。LockBits の私のコードは...

その時間は37秒です。GetPixels よりも Lockbits の方が時間がかかる理由がわかりません。

また、私の出力ファイルは、リストされている場所に関して一致しません。あたかもそれらが順不同であるかのようです。

これは取り組むべき大きな問題なので、私の問題を読んで解決しようとしてくれてありがとう。

0 投票する
0 に答える
644 参照

c# - LockBits からピクセルの各色を取得する

画像内のすべてのピクセルを取得してテキスト ドキュメントに出力するプログラムがあります。問題は、それらを数字としてそこに投げ込むだけで、見た目がかなり醜いことです。ei " 37 37 37 36" GetPixel 関数と同じように表示したいと思います。ei [A=255、R=4、G=255、B=131]。私の現在のコードは...