吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2911|回复: 5
上一主题 下一主题
收起左侧

[Python 转载] 使用python的pil制作微信九宫格图片

[复制链接]
跳转到指定楼层
楼主
leanfly 发表于 2020-11-25 11:50 回帖奖励
本帖最后由 leanfly 于 2021-1-13 09:39 编辑

输入图片路径后自动生成微信朋友圈九宫格图片

[Python] 纯文本查看 复制代码
#coding=utf-8

import  os
from PIL import  Image
import re

'''
    使用PIL的Image进行图片裁剪,生成正方形的9宫格
    1>获取图片的宽、高参数,生成一张新的正方形图
    2>对新生成的正方形图片进行裁剪,生成9宫格
    3>保存
'''

def full_img(img):
    #获取image图像的宽、高属性
    width, height = img.size
    #比较图片的宽、高属性来确定新图片的边长
    if  width > height :
        full_image_length = width
    else :
        full_image_length = height
    #生成正方形图片
    full_image = Image.new(img.mode, (full_image_length, full_image_length), color='white')
    #将图片覆盖到正方形底图,居中
    if  width > height :
        #获取两边间距
        side_length = int((width - height) / 2)
        #宽大于高,粘贴时左右边距0,上下边距是宽高差值的一半取整
        full_image.paste(img, (0, side_length))
    else :
        side_length = int((height- width) / 2)
        full_image.paste(img, (side_length, 0))
    #执行完毕,返回正方形新图片
    return full_image    
# full_img(Image.open('./python/dist/鸡西酸汤子中毒已致8人死亡/006rUgk9gy1gjndnnooquj30c80oa0wv.jpg')).show()

def cut_img(img):
    #获取image图像的宽、高属性
    width, height = img.size
    #进行三等分
    item_width = int(width / 3)
    #裁图的box列表
    box_list = []
    #Image.crop(left, upper,  right, lower)左上右下,四个维度
    for i in range(0, 3):
        for j in range(0, 3):
            box = (j*item_width, i*item_width, (j+1)*item_width, (i+1)*item_width)
            box_list.append(box)
    #裁剪后的图片列表
    img_list = []
    for box in box_list :
        img_item = img.crop(box)
        img_list.append(img_item)
    #返回裁剪后的图片列表
    return img_list

def save_img(img):
    #index初始值为1
    index = 1
    for i in img :
        i.save(str(index) + '.jpg', 'PNG')
        index += 1


if  __name__ == '__main__' :
    #定义图片路径
    print('请输入图片路径\n路径获取方式为:按住shift键后点击鼠标右键,然后点击复制为路径')
    file_path = input()
    file_path = file_path.split('"')[1].split('"')[0]
    print('当前图片路径为 %s' % file_path)

    # 创建文件夹
    print('请输入想要保存的文件夹名字\n')
    save_path = input()
    os.mkdir(save_path)
    os.chdir(save_path)
    #打开图片
    try:
        image = Image.open(file_path)
        #利用full_img函数生成正方形图片
        image = full_img(image)
        #利用cut_img函数裁剪生成图片列表
        image_list = cut_img(image)
        #利用save_img函数储存图片
        save_img(image_list)
        print('图片九宫已生成\nIt is show time!')
    except Exception as e:
        print(e)



链接: https://pan.baidu.com/s/1xIq3vwoH3_PRLZc6l8Rp_Q 提取码: 9vqy 复制这段内容后打开百度网盘手机App,操作更方便哦


发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

沙发
youxiaoyaooo 发表于 2020-11-25 17:38
不错,学习下
3#
wanshiz 发表于 2020-11-26 07:11
4#
justice_hum 发表于 2020-11-26 11:22
5#
nienie2009 发表于 2021-1-12 19:58
请问大佬可以更新下链接吗?链接挂了,谢谢您
6#
 楼主| leanfly 发表于 2021-1-13 09:40 |楼主
nienie2009 发表于 2021-1-12 19:58
请问大佬可以更新下链接吗?链接挂了,谢谢您

链接已更新为永久
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 20:10

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表