繁体   English   中英

在图片框上绘制并打印

[英]Draw on picture box and print it

嗨,我想将我的图片框做成圆形,然后打印出来。

问题是我可以以图片框的形式看到圆形,但是预览打印时它不是圆形。

这是我的代码

 public Form1()
    {
        InitializeComponent();


        //This makes picturebox1 circle
        System.Drawing.Drawing2D.GraphicsPath gp = new System.Drawing.Drawing2D.GraphicsPath();
        gp.AddEllipse(0, 0, pictureBox1.Width - 4, pictureBox1.Height - 4);
        Region rg = new Region(gp);
        pictureBox1.Region = rg;
    }


    //Preview the print
    private void button1_Click(object sender, EventArgs e)
    {
        printPrev.Document = printDoc;
        printPrev.ShowDialog();

    }

    private void printDoc_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
    {

        //Draw the picturebox on PDF
        e.Graphics.DrawImage(pictureBox1.Image, 230, 230);

    }

谢谢

它不起作用,因为您没有更改图像。 您仅在更改图形。 你可以做这样的事情。

            Bitmap bitmap = new Bitmap(pictureBox1.Width, pictureBox1.Height);
            Graphics g = Graphics.FromImage(bitmap);
            g.DrawEllipse(new Pen(new SolidBrush(Color.Black),3),0,0,bitmap.Width -4,bitmap.Height - 4);
            pictureBox1.Image = bitmap;

这也可以解决您的问题

    using (var bmp = new Bitmap(pictureBox1.Width, pictureBox1.Height)) {
                pictureBox1.DrawToBitmap(bmp, new Rectangle(0, 0,  bmp.Width,bmp.Height));
                e.Graphics.DrawImage(bmp, 230, 230);
            }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM