предисловие
Использование кода Python для написания программы для создания синтетических аватаров друзей WeChat одним щелчком мыши дает следующий эффект:
Не умеете писать код? Неважно! Пока вы можете пользоваться компьютером, все в порядке! Потому что в дополнение к генерации кода также создается программа .exe, и это делается путем нажатия на компьютер. Ниже приводится подробное объяснение того, как достичь
Учебник по использованию программы
1. Ответить "wx" в фоновом режиме официального аккаунта, чтобы получить программу .exe
2. Нажмите «Выполнить в Windows», появится QR-код для входа в WeChat, отсканируйте его с помощью мобильного телефона WeChat, чтобы подтвердить вход.
3. После успешного входа в систему будет отображаться сохраненный аватар, и, наконец, изображение all.png будет сгенерировано в каталоге, где запущена программа.
когда видишь"Все аватары WeChat были синтезированы, пожалуйста, проверьте все.png!", стена аватара, которую вы хотите, прямо здесьwxImagesвнутри папки
- Вы можете отправить эту картинку в круг друзей, добавить копию, а затем ждать большой волны лайков.
Учебник по коду
Код на самом деле очень простой, в основном потому, что его имеет смысл.Если вы знаете основы Python, а также следующее объяснение, вы тоже можете это сделать!
- Сначала создайте новую виртуальную среду. Почему виртуальные среды? Как построить виртуальную среду, я писал в своей предыдущей статье, вы можете найти, полистав исторические новости
Имя виртуальной среды произвольное, я взял "wx"
- Импортируйте только что созданную виртуальную среду в pycharm
3. В основном используются следующие три библиотеки: wxpy Для работы в WeChat, помимо получения аватаров, вы также можете отправлять сообщения друзьям, подробности в официальных документах. подушка
Часть кода для входа в WeChat
@staticmethod
def get_image():
path = os.path.abspath(".") #当前目录
bot = Bot() # 机器人对象
friends = bot.friends(update=True)
dirs = path + "\\wxImages" # 微信头像保存的路径
if not os.path.exists(dirs):
os.mkdir("wxImages")
index = 0
for friend in friends:
print(f"正在保存{friend.nick_name}的微信头像")
friend.get_avatar(dirs + "\\" + f"{str(index)}.jpg")
index += 1
return dirs # 合成头像的时候需要用到
составной код изображения
@staticmethod
def composite_image(dirs):
images_list = os.listdir(dirs)
images_list.sort(key=lambda x: int(x[:-4])) # 根据头像名称排序
length = len(images_list) # 头像总数
image_size = 2560 #
# 每个头像大小
each_size = math.ceil(image_size / math.floor(math.sqrt(length)))
lines = math.ceil(math.sqrt(length)) # 列数
rows = math.ceil(math.sqrt(length)) # 行数
image = Image.new('RGB', (each_size * lines, each_size * rows))
row = 0
line = 0
os.chdir(dirs) # 切换工作目录
for file in images_list: # 遍历每个头像
try:
with Image.open(file) as img:
img = img.resize((each_size, each_size))
image.paste(img, (line * each_size, row * each_size))
line += 1
if line == lines: # 一行填满后开始填下一行
line = 0
row += 1
except IOError:
print(f"头像{file}异常,请查看")
continue
img = image.save(os.getcwd() + "/all.png") # 将合成的头像保存
if not img:
print('所有的微信头像已合成,请查阅all.png!')
После завершения основного кода объедините две части и импортируйте необходимые пакеты, и все готово. Исходный код здесь
# coding: utf-8
from wxpy import Bot, Chat
import math
import os
from PIL import Image
class WxFriendImage(Chat):
@staticmethod
def get_image():
path = os.path.abspath(".")
bot = Bot() # 机器人对象
friends = bot.friends(update=True)
dirs = path + "\\wxImages"
if not os.path.exists(dirs):
os.mkdir("wxImages")
index = 0
for friend in friends:
print(f"正在保存{friend.nick_name}的微信头像")
friend.get_avatar(dirs + "\\" + f"{str(index)}.jpg")
index += 1
return dirs
@staticmethod
def composite_image(dirs):
images_list = os.listdir(dirs)
images_list.sort(key=lambda x: int(x[:-4])) # 根据头像名称排序
length = len(images_list) # 头像总数
image_size = 2560
# 每个头像大小
each_size = math.ceil(image_size / math.floor(math.sqrt(length)))
lines = math.ceil(math.sqrt(length)) # 列数
rows = math.ceil(math.sqrt(length)) # 行数
image = Image.new('RGB', (each_size * lines, each_size * rows))
row = 0
line = 0
os.chdir(dirs)
for file in images_list:
try:
with Image.open(file) as img:
img = img.resize((each_size, each_size))
image.paste(img, (line * each_size, row * each_size))
line += 1
if line == lines:
line = 0
row += 1
except IOError:
print(f"头像{file}异常,请查看")
continue
img = image.save(os.getcwd() + "/all.png")
if not img:
print('所有的微信头像已合成,请查阅all.png!')
def main():
dirs = WxFriendImage.get_image()
WxFriendImage.composite_image(dirs)
if __name__ == '__main__':
main()
Вы можете скопировать код для запуска в своем собственном компиляторе, эффект тот же. Что касается программы, запакованной в .exe, то она проще Запустите следующую команду в командной строке, чтобы
pyinstaller -F F:\wx\wx.py
После успешного запуска путь сгенерированной программы будет отображаться в предпоследней строке Что ж, вышеизложенное — это полное руководство по использованию python для синтеза аватаров друзей WeChat. Если вы считаете, что это полезно для вас, пожалуйста, дайте мне палец вверх...