Python图像处理之给图片添加圆角效果的完整代码

 更新时间:2025年03月06日 09:57:35   作者:蜡笔小新星  
在日常的图像处理任务中,我们经常需要对图片进行一些美化和调整,今天,我将向大家介绍一个使用Python编程语言,结合PIL(Python Imaging Library)库,给图片添加圆角效果的方法,需要的朋友可以参考下

代码解析

首先,我们需要导入PIL库中的ImageImageDraw模块。这两个模块提供了丰富的图像处理功能。

from PIL import Image, ImageDraw

接下来,我们定义一个名为round_corners的函数,该函数接受三个参数:image_path(输入图片的路径)、output_path(输出图片的路径)和radius(圆角的半径)。

def round_corners(image_path, output_path, radius):

在函数内部,我们首先使用Image.open方法打开图片,并将其转换为"RGBA"模式,以便进行透明处理。

    image = Image.open(image_path).convert("RGBA")

然后,我们创建一个与原图相同大小的空白图像作为遮罩,这个遮罩将用于实现圆角效果。

    mask = Image.new("RGBA", image.size, (0, 0, 0, 0))

接下来,我们使用ImageDraw.Draw创建一个画笔对象,并在遮罩上绘制一个圆角矩形。圆角矩形的填充颜色设置为白色(RGB值为(255, 255, 255))。

    draw = ImageDraw.Draw(mask)
    draw.rounded_rectangle((0, 0, image.width, image.height), radius, fill=(255, 255, 255))

现在,我们创建一个新的图像对象result,其大小与原图相同,并设置为"RGBA"模式。

    result = Image.new("RGBA", image.size)

使用paste方法,我们将原图粘贴到新图像上,并使用之前创建的遮罩来实现圆角效果。

    result.paste(image, mask=mask)

最后,我们使用save方法将处理后的图片保存到指定的输出路径。

    result.save(output_path)

使用示例

下面是一个使用round_corners函数的示例。我们假设有一张名为20250306.png的图片,并希望将其圆角半径设置为300像素,处理后的图片保存为20250306_output.png

source_img = r'D:\test_pic\20250306.png'
output_img = r'D:\test_pic\20250306_output.png'
round_corners(source_img, output_img, 300)

完整示例

from PIL import Image, ImageDraw

def round_corners(image_path, output_path, radius):
    # 打开图片,并转换为RGBA模式,以支持透明背景
    image = Image.open(image_path).convert("RGBA")
    
    # 创建一个与原图相同大小的空白图像作为蒙版
    mask = Image.new("RGBA", image.size, (0, 0, 0, 0))
    
    # 创建一个画笔对象,用于在蒙版上绘制图形
    draw = ImageDraw.Draw(mask)
    
    # 在蒙版上绘制圆角矩形,圆角半径为radius,填充颜色为白色(RGBA模式下为(255, 255, 255, 255))
    draw.rounded_rectangle((0, 0, image.width, image.height), radius, fill=(255, 255, 255, 255))
    
    # 创建一个新的图像对象,大小与原图相同,模式为RGBA
    result = Image.new("RGBA", image.size)
    
    # 将原图粘贴到新图像上,使用蒙版进行遮罩,只保留圆角矩形内的部分
    result.paste(image, mask=mask)
    
    # 保存处理后的图像到指定路径
    result.save(output_path)

# 示例用法
source_img = r'D:\test_pic\20250306.png'  # 源图片路径
output_img = r'D:\test_pic\20250306_output.png'         # 输出图片路径
round_corners(source_img, output_img, 300)            # 调用函数,设置圆角半径为300

实践操作

你可以按照上面的示例代码,将源图片路径和输出图片路径替换为你自己的文件路径,并调整圆角半径的值来达到你想要的效果。运行代码后,你将在指定路径下找到处理后的圆角图片。

结论

通过本文的教程,我们学会了如何使用Python编程语言结合PIL库给图片添加圆角效果。这个方法不仅简单易行,而且效果显著。在实际应用中,我们可以根据需要调整圆角半径的大小,以达到不同的视觉效果。无论是美化图片还是进行图像处理项目,这个方法都是一个非常实用的工具。希望这篇文章对你有所帮助!

以上就是Python图像处理之给图片添加圆角效果的完整代码的详细内容,更多关于Python图片添加圆角的资料请关注脚本之家其它相关文章!

相关文章

  • Python爬取三国演义的实现方法

    Python爬取三国演义的实现方法

    这篇文章通过实例给大家演示了利用python如何爬取三国演义,对于学习python的朋友们来说是个不错的实例,有需要的朋友可以参考借鉴,下面来一起看看吧。
    2016-09-09
  • pycharm修改IP、端口无效的问题及解决方案

    pycharm修改IP、端口无效的问题及解决方案

    文章介绍了在PyCharm中修改IP和端口无效的问题解决步骤,包括修改`app.py`文件、删除PyCharm启动项中的所有数据、新增一个Python配置并设置参数,最后进行测试
    2025-02-02
  • flask上传作品之dbm操作的实现

    flask上传作品之dbm操作的实现

    本文主要介绍了flask上传作品之dbm操作的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • Python实现字符串反转的9种方法(最全)

    Python实现字符串反转的9种方法(最全)

    本文主要介绍了Python实现字符串反转的9种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • python网络编程 使用UDP、TCP协议收发信息详解

    python网络编程 使用UDP、TCP协议收发信息详解

    这篇文章主要介绍了python网络编程 使用UDP、TCP协议收发信息详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • python贪吃蛇核心功能实现下

    python贪吃蛇核心功能实现下

    我想大家都玩过诺基亚上面的贪吃蛇吧,这篇文章将带你一步步用python语言实现一个snake小游戏,文中的示例代码讲解详细,感兴趣的可以了解一下
    2022-09-09
  • python GUI库图形界面开发之PyQt5图片显示控件QPixmap详细使用方法与实例

    python GUI库图形界面开发之PyQt5图片显示控件QPixmap详细使用方法与实例

    这篇文章主要介绍了python GUI库图形界面开发之PyQt5图片显示控件QPixmap详细使用方法与实例,需要的朋友可以参考下
    2020-02-02
  • 深入了解python中元类的相关知识

    深入了解python中元类的相关知识

    这篇文章主要介绍了深入了解python中的元类,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • Python装饰器详细介绍

    Python装饰器详细介绍

    这篇文章主要介绍了Python装饰器详细讲解,包括装饰器的功能及实现方法,通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2022-03-03
  • Python新手入门之编写一个自动诗歌生成器

    Python新手入门之编写一个自动诗歌生成器

    这篇文章主要为大家详细介绍了如何使用Python编写一个自动诗歌生成器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2026-05-05

最新评论