如何裁剪方形图像并将其更改为圆形C#

如何裁剪方形图像并将其更改为圆形C#,c#,winforms,C#,Winforms,我是一名c#方面的新手,我想知道是否有可能在c#winforms中制作一个圆形的图片盒。 我正在制作一个简单的软件,人们可以在其中选择图片并将其设置为picturebox。因此,我不能要求每个用户都使用Photoshop并使他们的图像循环。是否可以制作一个圆形的图片盒来裁剪图片并更新图片文件,该文件应为PNG格式,背景透明 设置pictureBox1 on button1 Click事件中图像的当前代码: private void button1_Click(object sender, Eve

我是一名c#方面的新手,我想知道是否有可能在c#winforms中制作一个圆形的图片盒。 我正在制作一个简单的软件,人们可以在其中选择图片并将其设置为picturebox。因此,我不能要求每个用户都使用Photoshop并使他们的图像循环。是否可以制作一个圆形的图片盒来裁剪图片并更新图片文件,该文件应为PNG格式,背景透明

设置pictureBox1 on button1 Click事件中图像的当前代码:

private void button1_Click(object sender, EventArgs e)
    {
        OpenFileDialog OFD = new OpenFileDialog();
        if (OFD.ShowDialog() == DialogResult.OK)
        {
            Bitmap Image = new Bitmap(OFD.FileName);
            pictureBox1.Image = Image;
            pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;
        }
    }

我不知道如何才能做到这一点,也不知道从哪里开始搜索!一些帮助会很感激的

更新感谢@TaW,我更新了
g.SetClip(path)
而不是
新区域

  • 创建一个与原始位图大小和像素匹配的新位图 格式
  • 从新位图创建图形
  • 设置图形

  • 剪辑到一个新的圆圈

  • 将原始图像绘制到新图形上
  • 以下是一个例子:

    public Bitmap ClipToCircle(Bitmap original, PointF center, float radius)
    {
        Bitmap copy = new Bitmap(original);
        using (Graphics g = Graphics.FromImage(copy)) {
            RectangleF r = new RectangleF(center.X - radius, center.Y - radius,
                                          radius * 2, radius * 2);
            GraphicsPath path = new GraphicsPath();
            path.AddEllipse(r);
            g.SetClip(path)
            g.DrawImage(original, 0, 0);
            return copy;
        }
    }
    

    我希望它能解决您的问题。

    请下次,不要复制另一个答案,只需将问题标记为重复。@如果我的答案不够,请提供其他详细信息。@DeJaVo看一看,我正在更新它,而你回答了“对不起”。在格式化代码之前,你需要在每个列表后添加文本或一行“-----------”。(一个旧的标记错误)-另外:不使用区域,只需使用G.SetClip(path)1扩展编辑会导致问题和答案被替换,因此很难跟踪和查找。这就是为什么如此强调提出精心设计的问题和答案的原因。下一次,请在写问题和回答时投入更多的精力。最后,这将产生一篇对更多读者有用的帖子。你的问题是什么?1-创建一个圆形
    图像框
    ?2-以圆形显示图像(原始图像保持不变,但显示为圆形)3-以编程方式编辑图像并使其成为圆形?如果您的要求是以圆形显示图像,则无需编辑原始图像并将其保存为圆形。您只需在
    图片盒中以圆形显示图像即可。同样,制作
    图片盒
    圆形也可以满足要求。以编程方式编辑图像,将其格式更改为圆形透明背景的PNG@雷泽Aghaei@RezeAghaei,我需要它编辑成圆形和PNG格式,以后在软件中用于其他用途,这就是y!因此,您应该编辑问题并删除您说需要循环的部分
    PictureBox
    ,只保留那些谈论编辑图片并使其循环的部分。