用Python生成自己专属的手机春节壁纸

朱小五 凹凸数据

大家好,我是朱小五

马上就要过年了,要不要换一个喜气洋洋、洋洋洒洒、洒扫应对、对牛弹琴的手机壁纸呢?

今天小五给大家表演的节目是:用Python生成自己独一无二的手机壁纸。

首先我们需要选择一个现成的手机壁纸作为模板,我选择了这种以自己姓氏为主题的专属手机壁纸。

这其实是个之前迎接跨年的手机壁纸,先利用ps将图片中的2020和其他文字去除。

尝试给图片添加文字,这里用到的是 PIL(Python Image Library),它是python的第三方图像处理库。
Image类是PIL中的核心类,有很多种方式来对它进行初始化,比如从文件中加载一张图像,处理其他形式的图像,或者是从头创造一张图像等。

下面是本文涉及的一些PIL Image类中常用的方法:

  • save(filename,format) (保存指定格式的图像)
  • open(filename,mode) (打开一张图像)。
  • paste(region,box,mask) (将一个图像粘贴到另一个图像)

先拿最简单的字体(黑体)尝试吧。
from PIL import Image,ImageDraw,ImageFont

a = '小王小王' font = ImageFont.truetype('simhei.ttf', 100) # 定义文本,黑体img = Image.open('底图.png')draw = ImageDraw.Draw(img) # 新建画布绘画对象draw.text((200,700),a,(0,0,0),font=font)#在新建的对象上坐标(200,700)处开始画出黑色文本img.show()img.save('壁纸.png')

运行:

可以可以,第一步是这个意思,不过就是有点丑。

下面开始尝试将文字倾斜。

结果没有找到比较好的方法,搜索得到的结论是文字倾斜,不如将图片倾斜。

于是我打算利用rotate旋转代码来旋转图片,以达到倾斜的效果。

from PIL import Image,ImageDraw,ImageFonta = '小王小王' font = ImageFont.truetype('simhei.ttf', 100) # 定义文本img = Image.open('底图.png')img=img.rotate(-15)  #旋转代码draw = ImageDraw.Draw(img) # 新建画布绘画对象draw.text((200,700),a,(0,0,0),font=font)#在新建的对象上坐标(200,700)处开始画出黑色文本img.show()img.save('壁纸.png')

运行:

额,是倾斜了

不过不是这个效果

是那种很漂亮的,倾斜字体

冥思苦想,

想到将文字写在一个透明的图片上,然后旋转这个图片后,将图片覆盖到有底色的底图上。

不知道大家看懂了吗,直接尝试一下吧。

其中img1是透明底的图片,img2是有底色的底图

from PIL import Image,ImageDraw,ImageFonta = '小王小王' # 定义文本b = '可爱大王'font = ImageFont.truetype('hylx.ttf', 180)img1 = Image.open('透明.png')img1=img1.convert('RGBA')draw = ImageDraw.Draw(img1) # 新建画布绘画对象draw.text((250,550), a,(255,243,211),font=font)draw.text((350,800), b,(255,243,211),font=font)img1=img1.rotate(15)  #旋转代码img2 = Image.open('底图.png')img2=img2.convert('RGBA')img2.paste(img1,(0,0),img1) # 将img1粘贴到img2上img2.show()img2.save('壁纸.png')

运行:

对对对,就是这种半人半鱼的效果。

在手机上简单测试一下效果吧

看起来很喜庆嘛!

大家喜欢的话也可以尝试一下,更换字体和模板底图,总有一款适合自己~

获取代码和文件,关注「凹凸数据」后台回复“壁纸”~

作者:朱小五,互联网数据分析师。热衷于Python爬虫,数据分析,可视化,个人公众号《凹凸玩数据》,有趣的不像个技术号~
End

©著作权归作者所有:来自51CTO博客作者mb5fe18e5a55d8d的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 20 行代码:Serverless 架构下用 Python 轻松搞定图像分类和预测
  2. php如何使用imagecopyresampled(图像处理函数)?
  3. php图像裁剪服务器搭建
  4. 如何使用javascript或jquery获取图像的自然尺寸?
  5. 通过AJAX加载内容和预加载图像?
  6. 获取背景图像的最终大小
  7. 如何将加载微调器图像添加到jquery选项卡中的每个选项卡?
  8. 在执行ajax时显示加载图像
  9. 当AJAX响应来自PHP文件时,如何显示以消息为中心的加载器图像&防止

随机推荐

  1. Asp.net MVC 对用户输入的字符串做Trim处
  2. ASP.NET Core使用教程(9)_实用技巧
  3. C#中DateTime与时间戳转换的实例代码
  4. Asp.net MVC 对输入的字符串字段做Trim处
  5. C#中自定义控件如何实现TextBox禁止粘贴
  6. 理解Asp.Net中WebForm的生命周期_实用技
  7. C#中如何实现微信红包功能的示例代码分享
  8. 详解VS2015自带LocalDB数据库用法实例
  9. 关于C#如何实现的UDP收发请求工具类的示
  10. 简单使用的ASP.NET验证码实例代码