新建winform项目,在其中拖入2个button和1个 PictureBox,1Openfiledialog用Graphics\pen\brush\color\Font\的属性画出不同图案 .

  private void button1_Click(object sender, EventArgs e)
        {
            //Graphics g = this.CreateGraphics();            //这里图像对象的初始化不能使用new的形式
            ////在初始化一个图像对象的时候,必须关联一个图像输出的设备。
            //g.DrawLine(Pens.Red, 0, 0, 100, 100);
            Graphics g = this.pictureBox1.CreateGraphics();
            g.DrawRectangle(Pens.Blue, 10, 10, 60, 100);

        }

        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            //Graphics g = this.CreateGraphics();            //这里图像对象的初始化不能使用new的形式
            ////在初始化一个图像对象的时候,必须关联一个图像输出的设备。
            //g.DrawLine(Pens.Red, 0, 0, 300, 300);

            e.Graphics.DrawRectangle(Pens.Blue, 10, 10, 60, 100);  //相对于form画的矩形
        }

        private void button2_Click(object sender, EventArgs e)
        {
            if (this.openFileDialog1.ShowDialog()==System.Windows.Forms.DialogResult.OK)
            {
                Image img = Image.FromFile(this.openFileDialog1.FileName);   //指定图片位置
                Graphics g = Graphics.FromImage(img);  //指定图像输出设备是img(可以不需要,但是要在图片上画东西就必须有)
               
                Color c1 = Color.FromArgb(255, 0, 255);//紫色(指定色彩)
                Pen pen2 = new Pen(c1, 20);
                g.DrawEllipse(pen2, 0, 200,120,60);  //画了个红色的椭圆

                Color c2 = Color.FromArgb(150, 200, 100, 210);   //第一个参数表示透明度,数越小表示透明度越大
                Pen  pen3=new Pen(c2,30);
                 g.DrawEllipse(pen3, 0, 300,120,120);

                //画直线
                Pen pen = new Pen(Color.Black, 10);
                g.DrawLine(pen, 0, 300, 800, 300);
                g.DrawLine(Pens.Green, 0, 1000, 800, 1000);

                //画椭圆(特殊的圆)
                g.DrawEllipse(Pens.Green, 0, 40, 40, 40);  //圆
                g.DrawEllipse(Pens.Green, 40, 40, 40, 40);
                g.DrawEllipse(Pens.Green, 80, 40, 40, 40);
                g.DrawEllipse(Pens.Green, 120, 40, 40, 40);
                g.DrawEllipse(Pens.Green, 160, 40, 40, 40);
                g.DrawEllipse(Pens.Green, 200, 40, 40, 40);
                g.DrawEllipse(Pens.Green, 240, 40, 40, 40);
                g.FillEllipse(Brushes.Green, 280, 40, 40, 40);
                g.FillEllipse(Brushes.Green, 320, 40, 40, 40);
                g.FillEllipse(Brushes.Green, 360, 40, 40, 40);
                g.FillEllipse(Brushes.Green, 400, 40, 40, 40);
                g.FillEllipse(Brushes.Green, 440, 40, 40, 40);
                g.FillEllipse(Brushes.Green, 480, 40, 40, 40);
                g.FillEllipse(Brushes.Green, 520, 40, 40, 40);


                g.DrawPie(pen3, 30, 40, 400, 400, 90, 245);//画的扇形
                g.DrawArc(pen2, 30, 90, 400, 400, 90, 245);
               
                #region 画刷的使用
                Brush b=Brushes.Green;
                g.FillEllipse(b, 800, 40, 80, 80);

                //实心画刷
                SolidBrush b2 = new SolidBrush(c2);
                g.FillEllipse(b2, 600, 40, 40, 40);

                //使用图像的画刷
                Image img1 = Image.FromFile("d:\\tupian.jpg");
                TextureBrush b3 = new TextureBrush(img1);
                g.FillEllipse(b3, 600, 40, 40, 40);  //扇形

                g.FillPie(b3, 0, 0, 400, 400, 0,45);
                g.FillRectangle(b3, 400, 400, 400, 400);  //矩形
                g.FillPie(b2, 100, 0, 400, 400, 0, 45);
                #endregion

                //画字
                g.DrawString("HBSI", new Font("宋体", 180), b3, 0, 0);
                //图
                g.DrawImage(img1, img.Width - img1.Width - 20, img.Height - img1.Height - 20);
                img.Save("d:\\aa.jpg");
                  
                this.pictureBox1.Image = img;  //将图片放在哪
            }
        }

原文地址:https://www.cnblogs.com/duanlinlin/p/2834678.html