問題タブ [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.
c# - バイト配列C#の画像の違い
2 つの画像の差をバイト配列 (rgb 値) で返し、UDP 経由で送信するメソッドを実行しようとしています。コード: (今は関係ないので、この配列を送信する部分はありません)
現在、2つの画像から2バイト配列があり、それらを比較するだけです。画像が異なる場合は、選択した画像から適切なRGB値を差分[]に書き込みます。問題は、RGB 値が両方の画像で等しい場合、この差分配列の適切な場所が 0 で埋められることです (トリプル 0 は白色を表します)。したがって、問題は、この違い[]をターゲット画像に「課す」場合、おそらくほとんどが白になることです。Marshal.Copy と Lockbits は非常に効率的であるため、使用したいと思っています。
質問: この画像の違いを保存して、読み取り/面付け時に「for」ループを掛けないようにするにはどうすればよいですか? 多分私はいくつかの方法を見逃していますか?私は LockBits と Marshal.Copy を使い続けたいと思っていますが、より良いアイデアがあれば、私と共有してください。
c# - C# LockBitmap - xy 座標からピクセル バイトへの変換
画像処理用の LockBitmap クラスを学習しようとしていますが、以下に投稿されたこのコードに出くわしました。基本的に、xy 座標の色を返します。
もちろん、この方法はsource.LockBits()and Marshal.Copy()/を実行した後にのみ機能しunsafe contextます。
- は何ですか
cCount、なぜいつもDepth / 8ですか? int i = ((y * Width) + x) * cCount、これは (x,y) 座標から に変換する固定式Pixels[i]ですか? なんで?
c# - Lockbits: 配列シーケンスがどこかで変更されています
メソッドを使用して画像を操作していますが、タイプのメソッドをlockbit使用して画像を保存した後、ロックビットから取得したバイト配列で操作したデータが操作されていることに気付きました。saveBitmap
たとえば、次のアプローチを想定します。
たとえば、配列内のすべての値を 0 に設定してこれをテストしようとすると、次のようになります。
同じ手法を使用して保存した画像を読み返すと、ロックビットから取得したバイト配列に 10、20、またはその他の奇妙な値が表示されます。
GetPixelより遅い方法を使用する場合、そのような変化に気付かないため、これは通常の動作ではないと思います。