VS-窗体-合成图片

《合成图片》

一、 说明

本文主要讲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;
            }
        }

三、 效果图

先选择第一张图片
如图所示:
VS-窗体-合成图片
然后选择第二张图片
如图所示:
VS-窗体-合成图片

然后点击合成图片
如图所示:
VS-窗体-合成图片
四、 总结
逆水行舟,不进则退!

上一篇:Delphi中易混淆的概念 Owner, Parent, Self,


下一篇:信号与槽再讲解