使用GDI+ 处理图片成圆图

注:当前框架对应.net core 2.1中的代码

一、使用剪切路径,圆形剪切

复制代码
Bitmap bitmap = new Bitmap(filename);
Image photo = Image.FromFile(photofile);
//绘制图片
Graphics g = Graphics.FromImage(bitmap);
//设置路径
GraphicsPath gp = new GraphicsPath();
gp.AddEllipse(new Rectangle(445, 580, 180, 180));
g.SetClip(gp);
//绘图
g.DrawImage(photo, 445, 580, 180, 180);
//保存生成
bitmap.Save(@"E:\\target.jpg");
复制代码

绘制结果:

 

二、使用图像画刷,圆形绘制

注:这种方式,图片的大小是绘制的最小单位,没法放大,可以缩小。

可以平铺处理。

复制代码
private Image CutEllipse(Image img, Rectangle rec, Size size)
{
    Bitmap bitmap = new Bitmap(size.Width, size.Height);
    using (Graphics g = Graphics.FromImage(bitmap))
    {
        using (TextureBrush br = new TextureBrush(img,System.Drawing.Drawing2D.WrapMode.Clamp, rec))
        {
            br.ScaleTransform(bitmap.Width / (float)rec.Width, bitmap.Height / (float)rec.Height);
            g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
            g.FillEllipse(br, new Rectangle(Point.Empty, size));
        }
    }
    return bitmap;
}
复制代码
Image image = this.pictureBox1.Image;
Image newImage = CutEllipse(image, new Rectangle(0, 0, 150, 150), new Size(150, 150));
this.pictureBox2.Image = newImage;

 

更多:

C#生成验证码实例

无法从带有索引像素格式的图像创建graphics对象(转)

Winform改变Textbox边框颜色(转)

posted @   天马3798  阅读(1294)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
历史上的今天:
2015-12-25 C#调用cmd 脚本实例
2015-12-25 C#程序调用cmd执行命令(转)
2013-12-25 各浏览器对 onbeforeunload 事件的支持与触发条件实现有差异
点击右上角即可分享
微信分享提示