Pythonの背景に作られたマイクロ文字の友人を使用することを教えます

内容:
はじめに
1環境
達成する2コード
3追伸を

0はじめに

いくつかの時間前、友人のマイクロチャネル円は、大画面上でのマイクロチャネル友人の頭のすべてを発揮日写真、マイクロ文字の友人の壁の新しい形の出現を、開始しました。

以下の画像は、プライバシー上の理由のために、ここにぼかしを作りました。

結局、皆のマイクロ文字の友人が同じではありません、それは派手ではないが、これはユニークです。この資料では、この効果を達成するためにはPythonを使っ教えします。

1つの環境

オペレーティングシステム:Windows

Pythonのバージョン:3.7.3

2コードの実装

私たちは、次の画像処理や画像のステッチが完了すると、情報の友人の頭を取得する必要がまず第一にする必要があります。

2.0準備

ここでは、wxpyモジュールを使用して、マイクロ手紙の友人の情報をログに記録するために取得、および最終的な画像処理を生成PILモジュールを意味します。このような環境など、すべてのサードパーティのモジュールは、ピップを使用してインストールすることはできませんので。また、処理パスを含む、そして我々は、OSモジュールのsysモジュールをインポートする必要があります。

from wxpy import *
import PIL.Image as Image
import os
import sys

2.1取得して記憶する情報の友人ヘッド

我々は、マイクロチャネルの友人の頭を取得したい、あなたは最初のマイクロ文字をログに記録する必要があります

# 初始化机器人,扫码登陆微信,适用于Windows系统
bot = Bot()

# # Linux系统,执行登陆请调用下面的这句
# bot = Bot(console_qr=2, cache_path="botoo.pkl"

情報の友人の頭を取得する前に、我々はローカルのディレクトリを作成する必要があり、友人はファイルのその後の保存に向かいます。

# 获取当前路径信息
curr_dir = get_dir(sys.argv[0])
# 如果FriendImgs目录不存在就创建一个
if not os.path.exists(curr_dir + "FriendImgs/"):
    os.mkdir(curr_dir + "FriendImgs/")

次のステップは、作成したローカルディレクトリ内の情報友人のアバターや店舗、それを得ることです。

my_friends = bot.friends(update=True)
# 获取好友头像信息并存储在FriendImgs目录中
n = 0
for friend in my_friends:
    friend.get_avatar(curr_dir + "FriendImgs/" + str(n) + ".jpg")
    n = n + 1

そして、あなたがローカルフォルダをFriendImgsすることができ、画像の保存マイクロ文字の友人の頭を参照してください。

在这里插入图片描述

2.2マイクロチャネル壁友達を生成します

マイクロ文字の友人の壁の生産は、単に以前のポスターのように、私たちは、1人の友人ずつが最大投稿画像をダウンロードしました。

まず、良いサイズのマイクロ文字の友人の壁、Image.new()メソッドを使用します。

image = Image.new("RGB", (650, 650))

次に、我々は1つのマイクロ文字の友人の写真で1を開く必要があり、Image.open()メソッドを使用します。

img = Image.open(curr_dir + "FriendImgs/" + file_names)

マイクロチャネルアバター画像はimg.resize()メソッドを使用して、50×50ピクセルのサムネイルのサイズにリセットされます。

img = img.resize((50, 50), Image.ANTIALIAS)

その後image.paste()メソッドを使用して私達の写真の壁に絵を貼り付けます。

image.paste(img, (x * 50, y * 50))

最後に、image.save()メソッドを使用し、ダウン完成写真の壁を保存します。

img = image.save(curr_dir + "WeChat_Friends.jpg")

次のように私たちは今、一緒に統合コードセクションを提示します。

# 准备生成微信好友头像墙的尺寸
image = Image.new("RGB", (650, 650))


# 定义初始图片的位置
x = 0
y = 0


# 获取下载的头像文件
curr_dir = get_dir(sys.argv[0])
ls = os.listdir(curr_dir + 'FriendImgs')


# 遍历文件夹的图片
for file_names in ls:
    try:
        # 依次打开图片
        img = Image.open(curr_dir + "FriendImgs/" + file_names)
    except IOError:
        continue
    else:
        # 重新设置图片的大小
        img = img.resize((50, 50), Image.ANTIALIAS)
        # 将图片粘贴到最终的照片墙上
        image.paste(img, (x * 50, y * 50))
        # 设置每一行排13个图像
        x += 1
        if x == 13:
            x = 0
            y += 1
# 保存图片为WeChat_Friends.jpg
img = image.save(curr_dir + "WeChat_Friends.jpg

コードが実行された後、次のように、最終的な効果を生成することです。

(ここに示されている写真は、ぼかしを行います)

ポストスクリプト3

本文中设定照片墙尺寸为650650,而好友头像尺寸为5050,这样最终制作成的照片墙每行有13位好友,共计容纳13*13位好友。

大家可根据自己实际情况,自行调整尺寸参数,以达到最佳效果。大家赶快去生成自己独一无二的照片墙吧~!

好啦,本文所有内容就到这里结束啦。其实后面还可以衍生很多玩法,比如:心行墙、圆墙等。不过逻辑一样,就是代码处理起来会比较麻烦。有兴趣的可以先自己试试,或者等我……

代码已上传至Github:https://github.com/MiracleYoung/You-are-Pythonista/tree/master/PythonExercise/Tool/Wechat_Photo_Wall

关注公众号「Python专栏」了解更多有趣的Python~

おすすめ

転載: www.cnblogs.com/moonhmily/p/11200162.html