PIL 图片处理 文字添加
Posted cityking
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PIL 图片处理 文字添加相关的知识,希望对你有一定的参考价值。
PIL简介:
python平台事实上的图片处理标准库,功能强大,API简单易用
PIL安装:
pip install PIL
直接绘图插入文字
#!/usr/bin/env python from PIL import Image, ImageDraw, ImageFont, ImageFilter # 240 x 60: width = 60 * 4 height = 60 image = 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 python from PIL import Image, ImageDraw, ImageFont, ImageFilter image = 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(‘ ‘) data = ‘‘ if not datas: datas = [text] for d in datas: if not d: d = ‘ ‘ elif len(d) > 31: d1 = d[:30] + ‘ ‘ d2 = d[30:] d = d1 + ‘ ‘+ d2 data += (d +‘ ‘) data += ‘ ‘ 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)
图片转pdf
from PIL import Image im = Image.open(‘cat.jpg‘) im2.save(‘cat2.pdf‘, ‘pdf‘)
直接把图片保存为pdf是图片的模式一定要为RGB模式,否则就要转换为RGB模式,转换方法为im.convert(mode)
以上是关于PIL 图片处理 文字添加的主要内容,如果未能解决你的问题,请参考以下文章
python PIL(pillow)图像处理-图片上添加文字
python PIL Image基本的图片拼接圆形裁减添加文字