程序员日常Python日常

手把手教你合成微信朋友圈图

2019-05-21  本文已影响16人  听风轻咛

本篇分两个部分,针对不同技术水平人群;如果你是小白也没有关系,手把手教你合成自己的朋友圈好友合成图。

windows用户

如果你是windows用户,当然就是我们一般大多数人都在使用的电脑(PC机,部分笔记本);
稍后本篇blog会给出exe程序供你们下载,使用方法很简单,直接用打开软件,出现黑色对话框可能需要等一会,
二维码出来后用微信扫码登录,然后去喝杯水,等一会就会自动生成啦;
我不会告诉你生成的图片就在你的exe文件同名目录image下;

下载链接:从这里下载,以后有好玩的还会在这个百度云帐号分享哦!

mac或linux用户

当然如果你能看到这个部分的时候,我也就不班门弄斧了,把代码贴出来,自己配个python环境运行就好了,我只是一个码农界的搬运工;

我不会告诉你的是,这里只需要几个库,简单直接粗暴:

pip install PyQt5
pip install itchat
pip install pillow

话不多说,直接上代码:

#!/usr/local/bin/python3
#-*-coding=utf-8-*-
import itchat
import math
import PIL.Image as Image
import os

itchat.auto_login()
friends = itchat.get_friends(update=True)[0:]
user = friends[0]["UserName"]

dir_path = "./image"
if not os.path.exists(dir_path):
    os.mkdir(dir_path)

num = 0
for i in friends:
    file_path = dir_path + "/" + str(num) + ".jpg"
    num += 1
    if os.path.exists(file_path):
        print(file_path)
        continue
    img = itchat.get_head_img(userName=i["UserName"])
    fileImage = open(file_path,'wb')
    fileImage.write(img)
    fileImage.close()
    

ls = os.listdir(dir_path)
each_size = int(math.sqrt(float(640*640)/len(ls)))
lines = int(640/each_size)
image = Image.new('RGB', (640, 640))
x = 0
y = 0
for i in range(0,len(ls)+1):
    try:
        img = Image.open(dir_path + "/" + str(i) + ".jpg")
    except IOError:
        print("Error")
    else:
        img = img.resize((each_size, each_size), Image.ANTIALIAS)
        image.paste(img, (x * each_size, y * each_size))
        x += 1
        if x == lines:
            x = 0
            y += 1
image.save(dir_path + "/" + "all.jpg")
itchat.send_image(dir_path + "/" + "all.jpg", 'filehelper')

上一篇下一篇

猜你喜欢

热点阅读