繁体   English   中英

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

[英]How to crop a square Image and change it into a circle C#

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

我当前的代码,用于在button1上的pictureBox1中设置图像。单击事件:

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;
        }
    }

我不知道如何执行此操作或从哪里开始搜索! 一些帮助将不胜感激。

UPDATE感谢@TaW我已经更新g.SetClip(path) ,而不是new region

  1. 制作一个与原始图片大小和像素格式匹配的新位图。
  2. 从该新的位图创建图形。
  3. 设置图形

  4. 夹到新圈子

  5. 将原始图像绘制到新图形上。

这是一个例子:

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;
    }
}

希望它能解决您的问题。

暂无
暂无

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

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