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

随便点开一个:

设计思路

以朋友圈中看到的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社团宣传语_用Python做一个好玩的朋友圈九宫格抽奖相关推荐

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

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

  2. 用Python做一个好玩的朋友圈九宫格抽奖

    最近在朋友圈看到个好玩的抽奖九宫格: 随便点开一个: 哈哈,笑出猪叫!这个玩法利用了朋友圈发长图会显示中间局部的设定,搞笑之余也为朋友圈广告营销贡献了新思路. 制作图的过程也不复杂,长图对应部分设计好 ...

  3. python可以plc编程_自己动手做一个PLC

    我们自己来做一个PLC(Programmable Logic Controller,即可编程逻辑控制器)怎么样?就像很多计算机专业的同学都自己写过最简单的操作系统一样,作为工控领域的软件人,怎么能不自 ...

  4. python七彩同心圆_用pygame做一个简单的python小游戏---七彩同心圆

    用pygame做一个简单的python小游戏---七彩同心圆 用pygame做一个简单的python小游戏-七彩同心圆 这个小游戏原是我同学python课的课后作业,并不是很难,就简单实现了一下,顺便 ...

  5. python照片转卡通_用Python做一个网站,照片生成漫画头像,有这个网站就够了。...

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:Python进阶者 ( 想要学习Python?Pyth ...

  6. 如何用python画金字塔形状_用Python画小猪佩奇,落叶树和动漫人物

    本文目录:小猪佩奇-落叶树-魔法少女 本文作者:小赖同学 ​ 最近在浏览Python文章时,无意中发现了一个好玩的画图工具turtle,看到各路大神竟然用Python画了一个图片出来,无法用言语来形容 ...

  7. 女友的生日礼物能随便嘛?Python小妙招:制作一款出圈九宫格抽奖小程序。

    导语 上一期文章是写的九宫格切图,都说很好看~朋友圈的九宫格也大受欢迎! 其实吧:最近女朋友要生日了,我问她要什么吧,她就说"随便",我这一想,顿时恼火啊,说随便,但是当男朋友的也 ...

  8. java设计九宫格拼图软件哪个好用_抖音超火的朋友圈九宫格用什么软件做的? 抖音九宫格图片制作教程...

    抖音这种朋友圈九宫格用什么软件做的?最近,在抖音刷到好多这种九宫格的朋友圈截图,请问是怎么做的?突然火起来的抖音朋友圈九宫格,脚本之家小编也发现这样发朋友圈真的很好看也很有意思,特别是出去玩或者旅游拍 ...

  9. python123九宫格输入法_【带你成为pyq最靓的仔】朋友圈九宫格(一)之图片切割篇...

    前言 这是一篇"蓄谋已久"的文章,为什么这么说呢? 记得那时我刚从健身房出来,当我在公交车站台等车的时候,无聊刷起了朋友圈,看到朋友圈里有好友在发九宫格的动态,就觉得好洋气呀,于是 ...

最新文章

  1. 第 19 章 XML映射
  2. 皮一皮:现在流行这样?
  3. php mysql数据库简介,mysql数据库
  4. JDK13的六大重要新特性
  5. 软件测试设计与开发,软件测试技术·测试设计与开发.ppt
  6. AT4119-[ARC096C]Everything on It【斯特林数,容斥】
  7. 【C++深度剖析教程8】C++的操作符重载的概念
  8. LeetCode27——Remove Element(移除数组中指定的元素)
  9. (4)Node.js 安装
  10. Python——使用“_”下划线作为参数的占位符
  11. PHP 判断字符的编码 并输出想要的编码格式字符 (转)
  12. android第十二步Pull解析器解析和生成XML内容
  13. iphone开发常用代码
  14. 严蔚敏数据结构课后参考答案
  15. NVIDIA cuDNN 下载
  16. nohup和的使用/21是什么意思/怎么关闭nohup挂起的程序
  17. [网络流24题] 06 最长递增子序列(最多不相交路径,最大流)
  18. 增加 swap 空间
  19. 巴西龟饲养日志----巴西龟肺炎治疗情况
  20. 浅谈XPS文件格式。

热门文章

  1. 无法停止删除容器,Mac重启Docker
  2. 令数组中的对象根据数字大小进行排序
  3. Android-x86入门之--各类问题总结
  4. Jquery生成emoji表情
  5. 前端常见中英文对照表
  6. python打印元组中的元素_Python怎么打印元组
  7. windows上RSA(openssl密钥生成)密钥生成和使用
  8. 荣耀笔记本可以JAVA_荣耀笔记本14评测:智能体验 高性能轻薄本新选择
  9. pythonprint字节按照16进制输出_对python以16进制打印字节数组的方法详解
  10. 用计算机的拓展活动,团结合作,成功之基 ——记计算机科学学院户外素质拓展训练...