开发者

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

开发者 https://www.devze.com 2025-03-15 12:14 出处:网络 作者: 蜡笔小新星
目录代码解析使用示例完整示例实践操作结论代码解析 首先,我们需要导入PIL库中的Image和ImageDraw模块。这两个模块提供了丰富的图像处理功能。
目录
  • 代码解析
  • 使用示例
  • 完整示例
  • 实践操作
  • 结论

代码解析

首先,我们需要导入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, 255http://www.devze.com))
    draw.rounded_rectangle((0, 0, image.pythonwidth, 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库给图片添加圆角效果。这个方法不仅简单易行,编程而且效果显著。在实际应用中,我们可以根据需要调整圆角半径的大小,以达到不同的视觉效果。无论是美化图片还是进行图像处理项目,这个方法都是一个非常实用的工具。希望这篇文章对你有所帮助!

以上就是Pjavascriptython图像处理之给图片添加圆角效果的完整代码的详细内容,更多关于Pythhttp://www.devze.comon图片添加圆角的资料请关注编程客栈(www.devze.com)其它相关文章!

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号