プログラムで 2 つの画像を比較していたとします。2 つの画像の違いを抽出した後、その違いをbmp3という別のビットマップ変数に保存するとします。
違いを最初の画像とマージする方法を示すコードを別のサイトから取得しました。
bmp1 と bmp2 という 2 つのビットマップ変数があるとします。bmp1 と bmp2という 2 つの変数の違いをプログラムで抽出し、bmp3変数に格納します。
ここで、同じ位置で bmp1 変数との違いをマージしたいと思います。そのため、サイトからコードを取得しましたが、これは正常に機能しますが、そのコードの数行について混乱しています。
コードは次のとおりです。
Bitmap bComb = new Bitmap(bmp3.Width, bmp3.Height);
using (Graphics g = Graphics.FromImage(bComb))
{
g.DrawImage(this.pictureBox1.Image, 0, 0, bComb.Width, bComb.Height);
g.DrawImage(bmp3, 0, 0, bComb.Width, bComb.Height);
}
this.pictureBox4.Image = bComb;
この行の意味は
Bitmap bComb = new Bitmap(bmp3.Width, bmp3.Height);
bcom は、bmp3 と同じサイズの新しい変数です.......私は正しいですか?
この行の意味 g.DrawImage(this.pictureBox1.Image, 0, 0, bComb.Width, bComb.Height); ?
picbox1 の内容を 0,0 座標から bcom 変数に書き込んでいます....そうですか?
再び、bmp3 コンテンツを 0,0 座標から bcom 変数に書き込んでいます....私は正しいですか?
この最後の行は私を混乱させています。なぜ bmp3 変数の内容を 0,0 座標から bcom 変数に再度書き込むのか....私は正しいですか?
両方を 0,0 座標から bcom 変数に再び書き込むと、pic は互いにオーバーラップするはずですが、出力は正しく行われます。どのようにそれが可能になっています。
この数行を理解するためにあなたの助けが必要です。したがって、これらの行について詳しく説明し、常に 0,0 座標が使用される理由を説明してください。コードを理解するのを手伝ってください。ありがとう