《合成图片》
一、 说明
本文主要讲VS中如何实现图片的合成!
二、 代码
private void InitializeComponent()
{
this.button1 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.pictureBox2 = new System.Windows.Forms.PictureBox();
this.button3 = new System.Windows.Forms.Button();
this.pictureBox3 = new System.Windows.Forms.PictureBox();
this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
this.openFileDialog2 = new System.Windows.Forms.OpenFileDialog();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).BeginInit();
this.SuspendLayout();
// button1(按钮1)
this.button1.Location = new System.Drawing.Point(12, 12);//按钮的中心点
this.button1.Name = "button1";//按钮名称
this.button1.Size = new System.Drawing.Size(121, 23);//按钮大小
this.button1.TabIndex = 0;
this.button1.Text = "选择第一张图片";//按钮显示的内容
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.button1_Click);//点击触发的事件
// button2(按钮二)
this.button2.Location = new System.Drawing.Point(139, 12);//按钮的中心点
this.button2.Name = "button2";//按钮名称
this.button2.Size = new System.Drawing.Size(121, 23);//按钮大小
this.button2.TabIndex = 1;
this.button2.Text = "选择第二张图片";//按钮显示的内容
this.button2.UseVisualStyleBackColor = true;
this.button2.Click += new System.EventHandler(this.button2_Click);
// pictureBox1(图片框一)
this.pictureBox1.Location = new System.Drawing.Point(12, 41);//图片显示框的中心点
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.Size = new System.Drawing.Size(248, 160);//图片框的大小
this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.pictureBox1.TabIndex = 2;
this.pictureBox1.TabStop = false;
//
// pictureBox2(图片框二)
//
this.pictureBox2.Location = new System.Drawing.Point(12, 216);//图片显示框的中心点
this.pictureBox2.Name = "pictureBox2";
this.pictureBox2.Size = new System.Drawing.Size(248, 186);//图片框的大小
this.pictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.pictureBox2.TabIndex = 3;
this.pictureBox2.TabStop = false;
//
// button3(按钮三)
//
this.button3.Location = new System.Drawing.Point(266, 12);
this.button3.Name = "button3";//按钮名称
this.button3.Size = new System.Drawing.Size(121, 23);
this.button3.TabIndex = 4;
this.button3.Text = "合成图片";//按钮内容
this.button3.UseVisualStyleBackColor = true;
this.button3.Click += new System.EventHandler(this.button3_Click);//点击事件
//
// pictureBox3(图片框三)
//
this.pictureBox3.Location = new System.Drawing.Point(266, 41);//图片显示框的中心点
this.pictureBox3.Name = "pictureBox3";
this.pictureBox3.Size = new System.Drawing.Size(379, 363);//图片显示框的大小
this.pictureBox3.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.pictureBox3.TabIndex = 5;
this.pictureBox3.TabStop = false;
//
// openFileDialog1
//
this.openFileDialog1.Filter = "图片文件|*.jpg;*.jpeg;*.png;*.bmp";
//
// openFileDialog2
//
this.openFileDialog2.Filter = "图片文件|*.jpg;*.jpeg;*.png;*.bmp";
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(657, 416);
this.Controls.Add(this.pictureBox3);
this.Controls.Add(this.button3);
this.Controls.Add(this.pictureBox2);
this.Controls.Add(this.pictureBox1);
this.Controls.Add(this.button2);
this.Controls.Add(this.button1);
this.Name = "Form1";
this.Text = "Form1";
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).EndInit();
this.ResumeLayout(false);
}
private void button1_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
pictureBox1.Image = Image.FromFile(openFileDialog1.FileName);
}
}
private void button2_Click(object sender, EventArgs e)
{
if (openFileDialog2.ShowDialog() == DialogResult.OK)
{
pictureBox2.Image = Image.FromFile(openFileDialog2.FileName);
}
}
private void button3_Click(object sender, EventArgs e)
{
if (pictureBox1.Image != null && pictureBox2.Image != null)
{
Bitmap bt = new Bitmap(pictureBox1.Image);
Graphics g = Graphics.FromImage(bt);
g.DrawImage(pictureBox2.Image, new Point(5, 5));
pictureBox3.Image = bt;
}
}
三、 效果图
先选择第一张图片
如图所示:
然后选择第二张图片
如图所示:
然后点击合成图片
如图所示:
四、 总结
逆水行舟,不进则退!