<i id='uXIRN'><tr id='uXIRN'><dt id='uXIRN'><q id='uXIRN'><span id='uXIRN'><b id='uXIRN'><form id='uXIRN'><ins id='uXIRN'></ins><ul id='uXIRN'></ul><sub id='uXIRN'></sub></form><legend id='uXIRN'></legend><bdo id='uXIRN'><pre id='uXIRN'><center id='uXIRN'></center></pre></bdo></b><th id='uXIRN'></th></span></q></dt></tr></i><div id='uXIRN'><tfoot id='uXIRN'></tfoot><dl id='uXIRN'><fieldset id='uXIRN'></fieldset></dl></div>

    1. <legend id='uXIRN'><style id='uXIRN'><dir id='uXIRN'><q id='uXIRN'></q></dir></style></legend>
        <bdo id='uXIRN'></bdo><ul id='uXIRN'></ul>

      <tfoot id='uXIRN'></tfoot>
    2. <small id='uXIRN'></small><noframes id='uXIRN'>

    3. python处理圆角图片、圆形图片的例子

      时间:2023-12-16
        <tbody id='MLXbH'></tbody>
      <legend id='MLXbH'><style id='MLXbH'><dir id='MLXbH'><q id='MLXbH'></q></dir></style></legend>

            <small id='MLXbH'></small><noframes id='MLXbH'>

            • <bdo id='MLXbH'></bdo><ul id='MLXbH'></ul>

              <tfoot id='MLXbH'></tfoot>

                <i id='MLXbH'><tr id='MLXbH'><dt id='MLXbH'><q id='MLXbH'><span id='MLXbH'><b id='MLXbH'><form id='MLXbH'><ins id='MLXbH'></ins><ul id='MLXbH'></ul><sub id='MLXbH'></sub></form><legend id='MLXbH'></legend><bdo id='MLXbH'><pre id='MLXbH'><center id='MLXbH'></center></pre></bdo></b><th id='MLXbH'></th></span></q></dt></tr></i><div id='MLXbH'><tfoot id='MLXbH'></tfoot><dl id='MLXbH'><fieldset id='MLXbH'></fieldset></dl></div>

                处理圆角图片和圆形图片是图片处理中比较常见的需求,在Python中也有很多方法来实现这个功能,下面我将为您提供完整的攻略。

                处理圆角图片

                方法一:Pillow库

                Pillow库是Python中的一款图像处理库,它可以方便地处理图片,其中包括处理圆角图片的功能。

                示例代码如下:

                from PIL import Image, ImageDraw
                
                def round_corner(radius, width, fill):
                    """定义一个生成圆角图片的函数"""
                    # 打开原始图片
                    im = Image.open('original_image.jpg')
                    # 创建一个白色背景图片
                    corner_radius = radius*width
                    corner = Image.new('RGBA', (2*corner_radius, 2*corner_radius), (255, 255, 255, 0))
                    # 定义一个可以画圆角的画笔
                    draw = ImageDraw.Draw(corner)
                    draw.pieslice((0, 0, 2*corner_radius, 2*corner_radius), 180, 270, fill=fill)
                    draw.pieslice((width, 0, 2*corner_radius + width, 2*corner_radius), 270, 360, fill=fill)
                    draw.rectangle((corner_radius, 0, width + corner_radius, 2*corner_radius), fill=fill)
                    draw.rectangle((0, corner_radius, 2*corner_radius, corner_radius + width), fill=fill)
                    # 生成圆角图片
                    corner_mask = corner.convert('L')
                    im.putalpha(corner_mask)
                    # 保存圆角图片
                    im.save('round_corner_image.jpg')
                

                这个函数的参数包括圆角半径radius、圆角宽度width和填充颜色fill。调用该函数后,它会自动读取当前目录下的original_image.jpg,根据设置的参数生成圆角图片,并保存在当前目录下的round_corner_image.jpg

                方法二:OpenCV库

                OpenCV库是一款专业的图像处理库,也可以用来处理圆角图片。

                示例代码如下:

                import cv2
                import numpy as np
                
                def round_corner(radius):
                    """定义一个生成圆角图片的函数"""
                    # 打开原始图片
                    img = cv2.imread('original_image.jpg', cv2.IMREAD_UNCHANGED)
                    # 获取原始图片的大小和通道数
                    h, w, c = img.shape
                    # 创建一个黑色背景图片
                    corner = np.zeros((h, w, 4), dtype=np.uint8)
                    corner[:, :, 3] = 255
                    # 生成圆角蒙版
                    corner_radius = radius*w
                    y, x = np.ogrid[-corner_radius:h-corner_radius, -corner_radius:w-corner_radius]
                    mask = x*x + y*y <= corner_radius*corner_radius
                    corner[mask] = img[mask]
                    # 保存圆角图片
                    cv2.imwrite('round_corner_image.jpg', corner)
                

                这个函数的参数为圆角半径radius。调用该函数后,它会自动读取当前目录下的original_image.jpg,根据设置的参数生成圆角图片,并保存在当前目录下的round_corner_image.jpg

                处理圆形图片

                方法一:Pillow库

                在Pillow库中处理圆形图片也比较容易,可以使用ImageDraw模块中的ellipse()函数。

                示例代码如下:

                from PIL import Image, ImageDraw
                
                def circle_image():
                    """定义一个生成圆形图片的函数"""
                    # 打开原始图片
                    im = Image.open('original_image.jpg')
                    # 获取原始图片的大小
                    size = min(im.size)
                    # 创建一个透明度为0的白色背景图片
                    circle = Image.new('RGBA', im.size, (255, 255, 255, 0))
                    draw = ImageDraw.Draw(circle)
                    # 生成圆形蒙版
                    draw.ellipse((0, 0, size, size), fill=(255, 255, 255, 255))
                    # 合成圆形图片
                    circle_mask = circle.convert('L')
                    im.putalpha(circle_mask)
                    # 保存圆形图片
                    im.save('circle_image.jpg')
                

                调用该函数后,它会自动读取当前目录下的original_image.jpg,根据原始图片的大小生成圆形蒙版,并将原始图片与蒙版合成,最终保存圆形图片到当前目录下的circle_image.jpg

                方法二:OpenCV库

                在OpenCV库中生成圆形图片也很容易,可以使用cv2.circle()函数。

                示例代码如下:

                import cv2
                import numpy as np
                
                def circle_image():
                    """定义一个生成圆形图片的函数"""
                    # 打开原始图片
                    img = cv2.imread('original_image.jpg', cv2.IMREAD_UNCHANGED)
                    # 创建一个黑色背景图片
                    circle = np.zeros((img.shape[0], img.shape[1], 4), dtype=np.uint8)
                    # 获取原始图片的中心位置和半径长度
                    center = (img.shape[1]//2, img.shape[0]//2)
                    radius = min(center)
                    # 生成圆形蒙版
                    cv2.circle(circle, center, radius, (255, 255, 255, 255), -1, cv2.LINE_AA)
                    # 合成圆形图片
                    circle_mask = circle[:, :, 3]
                    img = cv2.cvtColor(img, cv2.COLOR_BGR2BGRA)
                    img[np.where(circle_mask == 0)] = 0
                    # 保存圆形图片
                    cv2.imwrite('circle_image.jpg', img)
                

                调用该函数后,它会自动读取当前目录下的original_image.jpg,根据原始图片的中心位置和半径长度生成圆形蒙版,并将原始图片与蒙版合成,最终保存圆形图片到当前目录下的circle_image.jpg

                以上就是处理圆角图片和圆形图片的两种方法和示例代码,希望对你有所帮助。

                上一篇:Python线程池的正确使用方法 下一篇:python Event事件、进程池与线程池、协程解析

                相关文章

                  <i id='5stLp'><tr id='5stLp'><dt id='5stLp'><q id='5stLp'><span id='5stLp'><b id='5stLp'><form id='5stLp'><ins id='5stLp'></ins><ul id='5stLp'></ul><sub id='5stLp'></sub></form><legend id='5stLp'></legend><bdo id='5stLp'><pre id='5stLp'><center id='5stLp'></center></pre></bdo></b><th id='5stLp'></th></span></q></dt></tr></i><div id='5stLp'><tfoot id='5stLp'></tfoot><dl id='5stLp'><fieldset id='5stLp'></fieldset></dl></div>
                1. <legend id='5stLp'><style id='5stLp'><dir id='5stLp'><q id='5stLp'></q></dir></style></legend>
                    <tfoot id='5stLp'></tfoot>

                    <small id='5stLp'></small><noframes id='5stLp'>

                      <bdo id='5stLp'></bdo><ul id='5stLp'></ul>