图像拼接效果展示


选择图片一、选择图片二
private void ImageSelect1_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Title = "请选择图片";
ofd.InitialDirectory = "D:\\Image";
ofd.Filter = "图片|*.gif;*.jpg;*.jpeg;*.bmp;*.png;*.jfif";
if(ofd.ShowDialog() == DialogResult.OK)
{
pictureBox1.Image=Image.FromFile(ofd.FileName);
}
}
private void ImageSelect2_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Title = "请选择图片";
ofd.InitialDirectory = "D:\\Image";
ofd.Filter = "图片|*.gif;*.jpg;*.jpeg;*.bmp;*.png;*.jfif";
if (ofd.ShowDialog() == DialogResult.OK)
{
pictureBox2.Image = Image.FromFile(ofd.FileName);
}
}
封装图像拼接
Bitmap MergeImage(Bitmap p1,Bitmap p2)
{
Bitmap bitmap=new Bitmap(p1.Width,p1.Height);
//从 Bitmap 创建 Graphics 对象
Graphics g = Graphics.FromImage(bitmap);
// 0,0:目标图形表面的起始坐标(x=0,y=0),左上角开始绘制
// pictureBox.Width/2:图像在目标图像表面上的宽度,这里是pictrueBox3 控件宽度的一半
// pictureBox.Height: 图像在目标图形表面上高度,等于pictureBox3 控件的高度
g.DrawImage(p1, 0, 0,pictureBox3.Width/2, pictureBox3.Height);
g.DrawImage(p2, pictureBox3.Width/2-1, 0,pictureBox3.Width/2, pictureBox3.Height);
return bitmap;
}
合并图像
private void Merge_Click(object sender, EventArgs e)
{
if(pictureBox1.Image==null||pictureBox2.Image==null)
{
MessageBox.Show("请先进行选图","提示",MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
var bmp = MergeImage((Bitmap)pictureBox1.Image, (Bitmap)pictureBox2.Image);
pictureBox3.Image = bmp;
}
