当前位置: 代码网 > it编程>前端脚本>Python > Python图像处理之给图片添加圆角效果的完整代码

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

2025年03月06日 Python 我要评论
代码解析首先,我们需要导入pil库中的image和imagedraw模块。这两个模块提供了丰富的图像处理功能。from pil import image, imagedraw接下来,我们定义一个名为r

代码解析

首先,我们需要导入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图片添加圆角的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com