博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PIL 图片处理 文字添加
阅读量:5101 次
发布时间:2019-06-13

本文共 1671 字,大约阅读时间需要 5 分钟。

PIL简介:

  python平台事实上的图片处理标准库,功能强大,API简单易用

PIL安装:

pip install PIL

直接绘图插入文字

#!/usr/bin/env pythonfrom PIL import Image, ImageDraw, ImageFont, ImageFilter# 240 x 60:width = 60 * 4height = 60image = Image.new('RGB', (width, height), (255, 255, 255))# 创建Font对象:font = ImageFont.truetype('Arial.ttf', 36)# 创建Draw对象:draw = ImageDraw.Draw(image) text = '你要插入的文字' # 输出文字:for t in range(4):   position =(60 * t + 10, 10)   draw.text(position, text, font=font, fill="#000000", spacing=0, align='left') image.save('code.jpg', 'jpeg');

打开已有的图片插入文字

#!/usr/bin/env pythonfrom PIL import Image, ImageDraw, ImageFont, ImageFilterimage = Image.open('cat.jpg')# 创建Font对象:font = ImageFont.truetype('Arial.ttf', 36)# 创建Draw对象:draw = ImageDraw.Draw(image)text = '你要插入的文字'# 输出文字:for t in range(4):  position =(60 * t + 10, 10)  draw.text(position, text, font=font, fill="#000000", spacing=0, align='left') image.save('code.jpg', 'jpeg');

封装成方法

def insert_text(text, fone_type_file, font_size, im, position):    '''    ** text 要插入的文字    ** fone_type_file 文字类型文件名称    ** font_size 文字大小    ** im 背景图片    ** position 要插入的位置    '''    datas = text.split('\n')    data = ''    if not datas:        datas = [text]    for d in datas:        if not d:            d = ' '        elif len(d) > 31:            d1 = d[:30] + '\n'            d2 = d[30:]            d = d1 + ' \n'+ d2        data += (d +'\n')        data += ' \n'    data = data[:-1]    dr = ImageDraw.Draw(im)    font = ImageFont.truetype(fone_type_file, font_size)    dr.text(position, data, font=font, fill="#000000", spacing=0, align='left')    im.save("t.png")    return im, len(datas)

 

转载于:https://www.cnblogs.com/cityking/p/9197596.html

你可能感兴趣的文章
springboot中spring.profiles.active来引入多个properties文件 & Springboot获取容器中对象
查看>>
算法导论chapter2-2.1 Insertion sort
查看>>
VUE 注册验证码页面实例
查看>>
Linux下如何查找sqlnet.ora 和listener.ora 和tnsnames.ora 配置文件的目录
查看>>
Java知识系统回顾整理01基础03变量04类型转换
查看>>
object 整理中..... 顶级页面
查看>>
通过管道实现文件的拷贝
查看>>
Android 简单登陆 涉及 Button CheckBox TextView EditText简单应用
查看>>
回溯算法解迷宫问题(java版)
查看>>
微信公共账号学习笔记 _ 感想 爪机码字
查看>>
记一次简单的破解程序(逆向)
查看>>
2016-4-28
查看>>
wechat
查看>>
Python装饰器的原理与应用
查看>>
protobuf(Protocol Buffers)java初体验
查看>>
BC 2015在百度之星程序设计大赛 - 预赛(1)(KPI-树董事长)
查看>>
Matlab实现Hough变换检測图像中的直线
查看>>
UVA 10815 Andy's First Dictionary(字符处理)
查看>>
SEO市场是在扩大还是缩小 Seoer终于会变成什么?
查看>>
php xss过滤
查看>>