您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關(guān)如何用Python做個(gè)微信朋友圈抽獎(jiǎng)九宮格,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
最近在朋友圈看到個(gè)好玩的抽獎(jiǎng)九宮格:
隨便點(diǎn)開一個(gè):
哈哈,笑出豬叫!這個(gè)玩法利用了朋友圈發(fā)長圖會顯示中間局部的設(shè)定,搞笑之余也為朋友圈廣告營銷貢獻(xiàn)了新思路。
制作圖的過程也不復(fù)雜,長圖對應(yīng)部分設(shè)計(jì)好,最后整合到一起就 OK 了,就是一張張地重復(fù)操作略顯麻煩。想到這,不禁嘴角一翹、微微一笑,用 Python 的 PIL 模塊來批量生成九宮格圖片,不就好了?
設(shè)計(jì)思路
以朋友圈中看到的1號圖做參考,我們需要準(zhǔn)備 300*900 的白色底圖,搞笑表情圖,廣告語,中間一個(gè)醒目的數(shù)字編號,外加下方的嘲諷“哈哈哈”。
Python 圖像處理實(shí)現(xiàn)此思路,就是在對應(yīng)尺寸的底圖上,找到元素對應(yīng)的位置坐標(biāo),通過 PIL 模塊貼上預(yù)備好的表情圖,并在圖片中添加對應(yīng)的廣告語文本。圖中心的數(shù)字編號我選擇通過添加文本來實(shí)現(xiàn),至于最下方的“哈哈哈”我是自制了一個(gè)七彩“哈哈哈”圖片直接貼圖
準(zhǔn)備素材
首先在網(wǎng)上準(zhǔn)備9個(gè)不同的表情包圖片:
以及七彩“哈哈哈”嘲諷圖:
九句不同的廣告語參考文章開頭朋友圈圖片,我們通過 Python 字典將表情圖和廣告語對應(yīng)到不同的九宮格圖片:
content={ "back_img":"paper.jpg", "001":{ "ad":'老板,買10盒月餅唄', "head":'001.jpg' }, "002": { "ad": '老板,買20盒月餅唄', "head": '002.jpg' }, "003": { "ad": '老板,生活不易,買50盒月餅唄', "head": '003.jpg' }, "004": { "ad": '老板,買個(gè)80盒月餅,不多', "head": '004.jpg' }, "005": { "ad": '老板,看面相,你應(yīng)該買100盒月餅', "head": '005.jpg' }, "006": { "ad": '老板,恭喜你中獎(jiǎng)了,獎(jiǎng)品是150盒月餅', "head": '006.jpg' }, "007": { "ad": '老板,你的員工讓我告訴你,他們想吃月餅了', "head": '007.jpg' }, "008": { "ad": '老板,我賣月餅,買200盒唄', "head": '008.jpg' }, "009": { "ad": '老板,不整500盒月餅送禮啊', "head": '009.jpg' }}
PIL 圖片處理
PIL: Python Imaging Library, 是功能強(qiáng)大 Python 圖像處理庫。Python 3 中通過 pip install Pillow 安裝,代碼文件開頭通過 import PIL 來導(dǎo)入。此處我們要用到 PIL 中貼圖和向圖片中寫入文字。
貼圖通過 Image 模塊來實(shí)現(xiàn),通過 Image.open() 打開圖片,需要的話可以進(jìn)行 resize() 縮放等處理,最終通過 paste() 在給定的坐標(biāo)處貼圖
from PIL import Image# im 是背景圖im = Image.open(background)# head_img 是要貼的表情圖,先縮放統(tǒng)一尺寸head_img = Image.open(f"head/{head}").resize((150,150),Image.ANTIALIAS)# 在背景圖的 75,200 坐標(biāo)處貼s上表情圖im.paste(head_img,(75,20))
向圖片中寫入文字時(shí)通過 ImageDraw 模塊來實(shí)現(xiàn),如果要對文字尺寸和字體做調(diào)整,需要導(dǎo)入 ttf 字體文件,要注意的是有些字體不支持中文。最終通過 PIL.ImageDraw.ImageDraw.text() 將文本寫入圖中指定位置。
from PIL import Image, ImageFont, ImageDraw
im = Image.open(background)
draw = ImageDraw.Draw(im)
mark_font = ImageFont.truetype("pre/arial.ttf",100)
draw.text((125,400),mark,font=mark_font,fill=(0,0,0))
細(xì)節(jié)處理
制作九宮格圖片過程中,由于內(nèi)容簡單,對應(yīng)好元素位置直接操作就好。唯一不可控的是廣告語長度和內(nèi)容,這里我們處理得較簡單,識別廣告語中的中文“,”來斷句,每個(gè)被斷開的短句占一行居中顯示在圖片中。
既然我們是要用代碼來批量生產(chǎn)圖片,每個(gè)圖片目前可變的是表情圖和廣告語,代碼中我們就把完整生成一張圖的過程封裝成函數(shù),這樣每次給定相應(yīng)參數(shù)調(diào)用該函數(shù),即可批量生成我們需要的九宮格抽獎(jiǎng)長圖了。
# 提前定義好生成長圖的函數(shù) get_pic(background,head,adcontent,mark,pic_name) for i in range(1,10): background = "pre/paper.jpg" head = content[f'00{i}']['head'] adcontent = content[f'00{i}']['ad'] get_pic(background,head,adcontent,f"{i}",f"{i}.jpg") print("九宮格圖片生成完畢!")
代碼下載
GitHub 代碼及素材下載鏈接:
https://github.com/pengfexue2/friends_ad.git
百度網(wǎng)盤代碼及素材下載:
https://pan.baidu.com/s/10qqahokqPoc1KFJ7PyARxg 密碼:h202
最終效果
點(diǎn)開之后是如下長圖:
看完上述內(nèi)容,你們對如何用Python做個(gè)微信朋友圈抽獎(jiǎng)九宮格有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。