对于c#来说,我是一个新手,我想知道是否有可能在c#winforms中制作一个圆形的pictureBox。 我正在制作一个简单的软件,人们可以选择图片并将其设置为图片框。所以我不能要求每个用户继续使用Photoshop并使他们的图像循环。是否可以制作一个圆形图片框来裁剪图片并更新应该是PNG格式且具有透明背景的图片文件?
我目前在按钮1上的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;
}
}
我不知道如何做到这一点或从哪里开始搜索!一些帮助将不胜感激。
答案 0 :(得分:2)
更新感谢@TaW我已更新g.SetClip(path)
而不是new region
设置图形
剪辑到新的圈子
以下是一个例子:
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;
}
}
我希望它能解决你的问题。