私のC#プログラムには、ビデオのストリーム(連続フレーム)を表示したいPictureboxがあります。生データを受け取り、それをビットマップまたはイメージに変換します。一度に 1 つの画像を問題なく表示できます (ビデオ ストリームを再生するため)。
今私の問題は、同じサイズとアルファ値 (ARGB) を持つ 2 つ以上のビットマップ (レイヤーなど) をマージし、それを picturebox に表示したいということです。
SO に関する多くの Web サイトや投稿を読みましたが、多くは Graphics クラスを使用しており、自分のアプリケーションでそれを描画することはできません (おそらく、C# を初めて使用し、プログラムのセットアップが既に完了しているためです)。構造を変更したくありませんでした)。
私が必要とするもの(知っておくべきこと):
- アルファ値を持つ 2 つ以上のビットマップをオーバーレイする方法。
- ピクセル操作は行わないでください。パフォーマンスにそのコストがかかるわけではありません。
よろしくお願いします!
注: SO で見つかったものはすべて、ピクセル操作または Graphics クラスを使用して行われるため、この質問を重複としてマーク (またはクローズ) するべきではないと思います。(でも間違ってるかも!)
編集: 考えられる回避策 (質問の解決策ではありません
)
A PictureBox Problemの 4 番目の回答 (ユーザー comecme から) は、2 つの画像ボックスを重ねるように指示しています。このアプローチで機能させるために私がしなければならなかった唯一の(追加の)ことは:
private void Form1_Load(object sender, EventArgs e)
{
pictureBox2.Parent = pictureBox1;
}
pictureBox2 が一番上になります。
私はこれを回避策と考えているので、これをこの問題に対する答えとは考えません (特に、10 個以上のピクチャボックスを持つことは理想的ではないようです! 笑)。そのため、この質問を開いたままにして、私の質問に対する実際の回答を待ちます.
編集:解決しました!私の答えを確認してください。