首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

python,让文字变成图片

公众号回复"1",拉你进程序员交流群

小白:让文字变成图片?很简单啊,先在微信上打几个字,再截图,就是图片啦!

西门吹雪:但是这种方式,你不能预先设置字体的属性,以及图片的背景颜色等。

本文介绍一种简单的办法,让输入的文字显示到一张图片中,并且可以对字体与颜色进行设置。

为了简便地实现,这里使用python来处理,并且结合mac系统上的alfred来使用。

小白:alfred?

西门吹雪:mac系统上的神奇武器,你值得拥有!

小白:倚天剑?

先演示一下,使用的效果:

有两个程序要写。

一个是创建图片,设置图片的背景颜色与字体的颜色,再把输入的内容写到图片。

另一个程序,打开图片,把文字显示出来。

马上开工,先是创建文字图片:

# -*- coding: utf-8 -*-

from PIL import Image,ImageDraw,ImageFont

from bs4 import BeautifulSoup

import sys

g_temppng='tempclip.png'

def cal_text_length(text):

en_text_length=13

zh_text_length=18

zh_text_size=3

offset=8

if BeautifulSoup(text).originalEncoding=='utf-8':

w=zh_text_length*text.__len__()/zh_text_size+offset

else:

w=en_text_length*text.__len__()

return w

def generate_image(text,background_color,fill_color):

height=128

font_size=18

w=cal_text_length(text)

width=w+50

img=Image.new('RGB',(width,height),background_color)

draw=ImageDraw.Draw(img)

text_to_draw=unicode(text,'utf-8')

font = ImageFont.truetype('/Library/Fonts/华文黑体.ttf', font_size)

draw.text(((width - w) / 2, (height - font_size) / 2), text_to_draw, font=font, fill=fill_color)

del draw

img.save(g_temppng)

if __name__ == '__main__':

text="no input"

if len(sys.argv)>1:

text=sys.argv[1]

generate_image(text,'#000000','#ffffff')

然后是打开图片:

# -*- coding: utf-8 -*-

from PIL import Image

g_temppng='tempclip.png'

if __name__ == '__main__':

img=Image.open(g_temppng)

img.show()

最后,为了能快速运行这两个程序,这里借且alfred来实现,写两个workflow,如下:

workflow的目录结构:

然后就可以快速输入关键字(ti),再输入图片文字了,比如:

再快速输入关键字(io),打开图片,比如(敲入io后):

小白:这么简单啊!

西门吹雪:这个演示是简单的,但是这种用phthon写代码,再用框架快速执行的思路,却是很有用的思路,很多有用的事情都可以做到,比如拷贝文件、查看天气、爬取电影、英文翻译、发送邮件、查md5、看网页,自动化,等等…

小白:爬取电影?

公众号回复"2",看美女小编生活照

公众号回复"1",拉你进程序员交流群

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180112G0Q3FZ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券