python图片切割在很多项目中都会用到,比如验证码的识别、目标检测、定点切割等,本文给大家带来python的两种切割方式:

from PIL import Image

"""
通过四个坐标点在任意位置切割图片,主要用于将大图片分割成多个小图片
img_path:需要切割图片的路径
"""


def cut_image(path):
    img = Image.open(path)
    w, h = img.size
    # 坐标点可以根据自己的需要进行调整
    cut = [(0, 0, 120, h), (120, 0, 240, h), (240, 0, 360, h), (360, 0, w, h)]
    for i, n in enumerate(cut, 1):
        temp = img.crop(n)
        # 分别保存多个小图片,路径可以根据自己的需要设计
        temp.save(path.replace(".jpg", str(i - 1) + '.jpg'))
    return True


"""
通过坐标xy的最大最小值对图片进行整体切割
path1:需要切割图片的路径
path2:切割后保存图片的位置
x_min:切割矩形左边x值对应原图的x坐标
x_max:切割矩形右边x值对应原图的x坐标
y_min:切割矩形上边y值对应原图的y坐标
y_max:切割矩形下边y值对应原图的y坐标
"""


def cut_img_by_xy(path1, x_min, x_max, y_min, y_max, path2):

    img = Image.open(path1)

    crop = img.crop((x_min, y_min, x_max, y_max))

    crop.save(path2)


if __name__ == '__main__':
    img_path = "1.jpg"

    # 转换通道
    img = Image.open(img_path)
    img = img.convert("RGB")
    img.save(img_path)

    # 切割小图片
    cut_image(img_path)

    # 整体切割
    cut_img_by_xy(img_path, 120, 240, 60, 180, "2.jpg")


输入图片:

第一种方法切割效果:

第二种方法切割效果:

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐