Python切割九宫格图片,朋友圈九宫格,原图画质

更换文中图片地址即可

# -*- coding: UTF-8 -*-
from PIL import Image
import sys
import os
 
__author__ = 'kandy'
 
#当前文件所在文件夹
DIR_NAME = os.path.dirname( os.path.abspath(__file__) )
 
#填充新的image
def fill_image(image):
    width, height = image.size
    print('width:{%d}, height:{%d}' % (width, height))
 
    _length = width
    if height > width:
        _length = height
 
    new_image = Image.new(image.mode, (_length, _length), color='white')
 
    if width > height:
        new_image.paste(image, (0, int((_length - height) / 2)))
    else:
        new_image.paste(image, (int((_length - width) / 2), 0))
    return new_image
 
#裁剪image
def cut_image(image):
    width, height = image.size
    _width = int(width / 3)
    print('_width:{%d}' % _width)
 
    box_list = []
 
    # (left, top, right, bottom)
    for i in range(0, 3):
        for j in range(0, 3):
            print('i:{%d}, j:{%d}' % (i, j))
            box = (j*_width, i*_width, (j+1)*_width, (i+1)*_width)
            box_list.append(box)
            image_list = [image.crop(box) for box in box_list]
    return image_list
 
#将image列表的里面的图片保存
def save_images(image_list): 
    index = 1 
    #创建result文件夹
    res_dir = os.path.join(DIR_NAME, 'result')
    if not os.path.exists(res_dir):
        os.mkdir(res_dir)
 
    for image in image_list:
        new_name = os.path.join(res_dir, str(index) + '.png')
        image.save(new_name, 'PNG') 
        index += 1 
    print('图片保存完毕!')
 
 
if __name__ == '__main__': 
    file_path = os.path.join(DIR_NAME, '123.jpg')
    file_path = 'C:\\Users\\Administrator\\Desktop\\111.jpg'
    image = Image.open(file_path)
    #image.show()
    image = fill_image(image)
    #
    image_list = cut_image(image)
    #
    save_images(image_list)
    print('程序结束!')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值