最近在朋友圈看到个好玩的抽奖九宫格:

随便点开一个:

哈哈,笑出猪叫!这个玩法利用了朋友圈发长图会显示中间局部的设定,搞笑之余也为朋友圈广告营销贡献了新思路。

制作图的过程也不复杂,长图对应部分设计好,最后整合到一起就 OK 了,就是一张张地重复操作略显麻烦。想到这,不禁嘴角一翘、微微一笑,用 Python 的 PIL 模块来批量生成九宫格图片,不就好了?

设计思路

以朋友圈中看到的1号图做参考,我们需要准备 300*900 的白色底图,搞笑表情图,广告语,中间一个醒目的数字编号,外加下方的嘲讽“哈哈哈”。

Python 图像处理实现此思路,就是在对应尺寸的底图上,找到元素对应的位置坐标,通过 PIL 模块贴上预备好的表情图,并在图片中添加对应的广告语文本。图中心的数字编号我选择通过添加文本来实现,至于最下方的“哈哈哈”我是自制了一个七彩“哈哈哈”图片直接贴图

准备素材

首先在网上准备9个不同的表情包图片:

以及七彩“哈哈哈”嘲讽图:

九句不同的广告语参考文章开头朋友圈图片,我们通过 Python 字典将表情图和广告语对应到不同的九宫格图片:

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": '老板,买个80盒月饼,不多',
"head": '004.jpg'   },
"005": {
"ad": '老板,看面相,你应该买100盒月饼',
"head": '005.jpg'   },
"006": {
"ad": '老板,恭喜你中奖了,奖品是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, 是功能强大 Python 图像处理库。Python 3 中通过 pip install Pillow 安装,代码文件开头通过 import PIL 来导入。此处我们要用到 PIL 中贴图和向图片中写入文字。

贴图通过 Image 模块来实现,通过 Image.open() 打开图片,需要的话可以进行 resize() 缩放等处理,最终通过 paste() 在给定的坐标处贴图

from PIL import Image
# im 是背景图
im = Image.open(background)
# head_img 是要贴的表情图,先缩放统一尺寸
head_img = Image.open(f"head/{head}").resize((150,150),Image.ANTIALIAS)
# 在背景图的 75,200 坐标处贴s上表情图
im.paste(head_img,(75,20))

向图片中写入文字时通过 ImageDraw 模块来实现,如果要对文字尺寸和字体做调整,需要导入 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))

细节处理

制作九宫格图片过程中,由于内容简单,对应好元素位置直接操作就好。唯一不可控的是广告语长度和内容,这里我们处理得较简单,识别广告语中的中文“,”来断句,每个被断开的短句占一行居中显示在图片中。

既然我们是要用代码来批量生产图片,每个图片目前可变的是表情图和广告语,代码中我们就把完整生成一张图的过程封装成函数,这样每次给定相应参数调用该函数,即可批量生成我们需要的九宫格抽奖长图了。

    # 提前定义好生成长图的函数 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("九宫格图片生成完毕!")

最终效果

点开之后是如下长图:

近期热门:

千人Python知识星球重大福利,一年仅一次

学习群:

小密圈人气很高的两个实战项目

小密圈的趣味实战-微信主题

3个月还没入门Python,看这100名小密圈的同学3周学Python的杰作

需要源码和素材的同学,后台输入:【九宫格】

用Python做一个好玩的朋友圈九宫格抽奖相关推荐

  1. python 还原九宫格图片_用Python做一个好玩的朋友圈九宫格抽奖

    最近在朋友圈看到个好玩的抽奖九宫格: 随便点开一个: 设计思路 以朋友圈中看到的1号图做参考,我们需要准备 300*900 的白色底图,搞笑表情图,广告语,中间一个醒目的数字编号,外加下方的嘲讽&qu ...

  2. python社团宣传语_用Python做一个好玩的朋友圈九宫格抽奖

    最近在朋友圈看到个好玩的抽奖九宫格: 随便点开一个: 设计思路 以朋友圈中看到的1号图做参考,我们需要准备 300*900 的白色底图,搞笑表情图,广告语,中间一个醒目的数字编号,外加下方的嘲讽&qu ...

  3. 用python做一个好玩的数字炸弹游戏

    首先我们要先了解原理:生成一个1-100之间的随机数,玩家和电脑轮流猜炸弹数字,比如炸弹数字是50,玩家猜的数字为30,炸弹的范围就会定在30-100,,以此类推,一直到玩家或者电脑猜到了炸弹后,游戏 ...

  4. Python爬虫爬取微信朋友圈的方法,感兴趣的朋友可以了解下

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 小雨 | 作者 python教程 | 来源 接下来,我们将实现微信朋友圈的 ...

  5. Python爬虫爬取微信朋友圈

    更多编程教程请到:菜鸟教程 https://www.piaodoo.com/ 友情链接: 高州阳光论坛https://www.hnthzk.com/ 人人影视http://www.op-kg.com/ ...

  6. python随手记自动记账_菜鸟也疯狂!8分钟用Python做一个酷炫的家庭随手记

    原标题:菜鸟也疯狂!8分钟用Python做一个酷炫的家庭随手记 每个月都有各种各样的开销,不当家不知道柴米贵呀!柴米油盐酱醋茶样样都要开销,吃的穿的,各种开销,每个月都没有啥结余,小编月初是富人,月底 ...

  7. 用Python做一个“以图搜番“的应用程序,再也不用愁动漫图片的出处了!

    文章目录 前言 PyQt5界面设计 使用Qt Designer绘制界面 视频部件插入小技巧 解码器下载 功能实现 trace.moe API介绍与视频 使用Nuitka打包成exe文件 前言 喜欢看动 ...

  8. python可以做动漫吗_用Python做一个以图搜番的应用程序,再也不用愁动漫图片的出处了!...

    前言 喜欢看动漫的朋友们大概都能体会到一个难受的事情,就是在论坛或者群聊里面看到一张动漫截图,很想知道它的出处,但百度搜了一圈却也没有一个可靠结果,就很郁闷.今天就来带大家用Python做一个简单的& ...

  9. python写520_用Python做一个520表白神器,值得收藏

    本文最后给出了打包好的软件,无需安装Python环境和各种依赖,直接下载软件,解压后,双击exe文件即可使用. 先来看一下具体的效果. 运行程序. 用Python做一个520表白神器,值得收藏 点击「 ...

最新文章

  1. 微信小程序小结02-- 完整的demo
  2. C++归并排序递归写法
  3. bigquery sql 正则表达式
  4. OpenCV图像旋转,指定填充背景颜色边界颜色
  5. push模式的水晶报表,参数的设置要放在数据源设置之后
  6. 【基础】有关T-SQL的10个好习惯
  7. [置顶] JQuery在线截取图片
  8. tplink 2.4g弱信号剔除_解疑答惑 | 使用无线路由器上网,应使用2.4G频段还是5G频段?...
  9. Day 14 python 之 字符串练习
  10. 【python黑帽子2】netcat.py编写及使用说明
  11. 2022中国大数据产业发展白皮书(附下载)
  12. 【MindSpore易点通机器人-01】你也许见过很多知识问答机器人,但这个有点不一样
  13. 【数据分析】面经(搬运)
  14. 华中科技大学计算机考研信息汇总
  15. HDU 4565 So Easy!
  16. 函数在c99中隐式声明无效_C函数的隐式声明
  17. 《黄帝内经.生气通天论篇》不生病的智慧节选01
  18. JS获取按键的代码,Js如何屏蔽用户的按键,Js获取用户按键对应的ASII码(兼容所有浏览器)...
  19. HTML实现可编辑下拉框
  20. 蜻蜓FM语音下载(qingtingdown)

热门文章

  1. 百度推广系列之广告词编写必杀技
  2. TensorFlow 1.x 深度学习秘籍:1~5
  3. 化工厂人员定位的实施,新导化工厂人员定位带来的效果
  4. CSP初赛基础知识整理
  5. 一加手机可以刷鸿蒙系统吗,朋友想把1+手机安装鸿蒙系统,老板收费350,大家千万别被骗了!...
  6. 二十四节气-春分。昼夜平分,日渐长~
  7. Java 在PDF中添加骑缝章
  8. 2022年全球及中国工程软件 (CAD、CAM、 CAE、AECEDA)行业头部企业市场占有率及排名调研报告
  9. HDU 6304 Chiaki Sequence Revisited(二分+找规律)
  10. 3年Android开发工程师面试经验分享,先收藏了