Python文字转图片,PIL库,可直接引用
使用了PIL库。
PIL有3个模块Image,ImageFont,ImageDraw。
可以参考大佬们的相关学习链接:
Image模块:Python图像处理PIL各模块详细介绍_章子雎的博客-CSDN博客_pil.image
ImageFont模块:Python图像处理库PIL的ImageFont模块介绍_icamera0的博客-CSDN博客_imagefont.truetype
ImageDraw模块:Python图像处理库PIL的ImageDraw模块介绍_icamera0的博客-CSDN博客
直接给出代码:
调用了PIL,time(计时)库,如果Python环境配置正确不会报错。
from PIL import Image,ImageFont,ImageDraw
import time
def size_add(tuple_file,add): #将tuple_file(二维元组)加宽add,以元组输出
tuple_file=list(tuple_file)
print('文本占用像素:',tuple_file)
tuple_file[0]=tuple_file[0]+100 ; tuple_file[1]=tuple_file[1]+100
return tuple(tuple_file)
print('这是一个文字转图片的工具,输出为JPG格式。')
file_place=input('输入文本的路径:如E:\\Python_file\\文字转图片\\temp.txt')
file_size=int(input('输入字体大小(建议50)'))
time_start=time.perf_counter()
print('计时开始,程序运行中.....\n')
fo=open(file_place,encoding='utf-8') #编码方式我utf-8,支持中文
text=fo.read() #读取这个文件,txt格式
fo.close() #关闭打开的文本
im = Image.new("RGB", (10, 10), 'white') #新建一个图像
draw= ImageDraw.Draw(im) #建立一个绘图的对象
font = ImageFont.truetype('C:\\Windows\\Fonts\\simkai.ttf', file_size) #设置字体格式楷体和大小
im_size=draw.textsize(text,font=font) #得到文本占用像素大小
im_size=size_add(im_size,file_size) ##将文本大小加大一行
im = Image.new("RGB", im_size, 'white') #创建等大的图像
draw= ImageDraw.Draw(im) #建立一个绘图的对象
draw.text((0,0), text, font=font, fill="black") #在图像上打印文字
print('运行时间{:.2}秒'.format(time.perf_counter()-time_start))
im.show() #打开这个图片
样例:
常用的函数总结:
Image模块:
Open:加载图片im = Image.open("E:\mywife.jpg")
Save:保存图片im.save("E:\mywife.png")
Show:打开图片:im.show()
format:查看图片格式:print(im.format) ## 打印出格式信息
Mode:图像的模式:灰度图像,彩色图像等。print(im.mode) ## 打印出模式信息
Convert:将当前图像转换为其他模式,并且返回新的图像。new_im = im.convert('P')
图像的模式:
New:使用给定的变量mode和size生成新的图像:n_im= Image.new("RGB", (128, 128),"green")
Copy:拷贝这个图像im = Image.open("E:\mywife.jpg")拷贝一个新的图像
Crop:截取图像:box = (300, 100, 700, 700) ##确定拷贝区域大小 region = im.crop(box) ##将im表示的图片对象拷贝到region中,大小为box
Resize:改变图像的尺寸:region = im.resize((400, 400)) ##重新设定大小
Seek:截取GIF图像特定的帧:im_gif.show(3) ##第3帧
ImageDraw模块
Draw:创建一个可以在给定图像上绘图的对象:draw =ImageDraw.Draw(im01)
Arc:在给定的区域内,在开始和结束角度之间绘制一条弧(圆的一部分):draw.arc((0,0,200,200),0, 90, fill = (255,0,0))
圆,椭圆,长方形等。
Text:在图像中加入英文,不支持中文,不能设置字体大小:draw.text((0,0),"Hello", fill = (255,0,0))
ImageDraw模块的option变量:
Option变量有三个属性,分别为outline,fill和font。Outline和fill都可为整数或者元组;font为ImageFont类的实例。变量option的font用于指定所用字体。它应该是类ImangFont的一个实例,使用ImageFont模块的load()方法从文件中加载的。变量options的fill给定文本的颜色:dr.text((0, 0),‘Hollow’, font=font, fill="#000000") 位置,转换文本,字体,颜色
Textsize:返回给定字符串的大小,以像素为单位。draw.textsize(string,options)⇒ (width, height)
ImageFont模块
Truetype:创建一个字体对象。ImageFont.truetype(file,size) ⇒ Font instance
>>> ft = ImageFont.truetype("C:\\Windows\\Fonts\\simhei.ttf", 20) #楷体
>>> draw.text((30,30), u"Python图像处理库PIL从入门到精通",font = ft, fill = 'red')
Python文字转图片,PIL库,可直接引用相关推荐
- python自带的PIL库扩展图片大小给图片加上文字描述
利用python自带的PIL库扩展图片大小给图片加上文字描述.大多都是库函数调用,只是给定图片宽度后计算文字所需行数的代码需要写. 代码比较丑,but it works. #!/usr/bin/env ...
- Python 随笔:用 PIL 库读取图像文件像素长宽大小
Python 随笔:用 PIL 库读取图像文件像素宽高大小 1.前言 安装 PIL 库(全称是pillow),所以安装命令上的名称是pillow pip install pillow 2. 使用pil ...
- python文字转为图片
python文字转为图片 一.文字横向排列 二.文字纵向排列 一.文字横向排列 #文字横向排列 import os from io import BytesIO from PIL import Ima ...
- python:程序猿的方式在元宵佳节之际,带你设计【东方明珠】动画浪漫烟花秀(python编程利用Tkinter+PIL库)
python:程序猿的方式在元宵佳节之际,带你设计[东方明珠]动画浪漫烟花秀(python编程利用Tkinter+PIL库) 目录 设计动画展示 设计思路 核心代码 设计动画展示 设计思路 核心代码 ...
- python文字转图片(二值、RGB)以及numpy数组
文字一般使用unicode等编码的形式在计算机中表示,但是其形态本身也很有价值.如果能够把文字转为图片,就可以做一些应用,比如: 基于最近邻查找来实现简单的OCR文字识别 从像素中提取特征用于机器学习 ...
- Python文字转图片 | 诗词歌词格言生成配图卡片
问题来源 最近这几天因为新型冠状病毒疫情的缘故,不得不宅在家里,学业荒废,心中烦闷浮躁.想要静下心来,整理过去,思考当下,展望未来.整理过去包括整理几年来的手机照片.备忘录.浏览器书签.收藏等等,发现 ...
- python文字转图片_技能:如何使用Python将文本转为图片
更多腾讯海量技术文章,请关注云加社区:https://cloud.tencent.com/developer/column 作者:CDA数据分析师 摘要:有时候,我们需要将文本转换为图片,比如发长微博 ...
- python文字转图片_Python 将文本转为图片
有时候,我们需要将文本转换为图片,比如发长微博,或者不想让人轻易复制我们的文本内容等时候.目前类似的工具已经有了不少,不过我觉得用得都不是很趁手,于是便自己尝试实现了一个. 在 Python 中,PI ...
- Python笔记八:PIL库的使用
PIL库支持图像存储.显示和处理,它能够处理几乎所有的图片格式,可以完成对图像的缩放.剪裁.叠加以及向图像添加线条.图像和文字等操作. 1. 图像归档(Image Archives).PIL非常适合 ...
最新文章
- java用if语句调用方法_J2SE中main函数中的if语句想要调用另一个类的方法怎么能实现?...
- SpringBoot 2 + Spring Security 5 + JWT 的单页应用 Restful 解决方案
- 最新zendframework1.11使用
- Flink从入门到精通100篇(二十三)-基于Apache Flink的爱奇艺实时计算平台建设实践
- 深入学习__doPostBack函数
- error: object MultivariateNormalDistribution is not a member of package
- Android图表控件MPAndroidChart——曲线图LineChart的使用(财富收益图)
- win7 64位出现桌面右键鼠标显示忙碌
- 通过MVC模式将Web视图和逻辑代码分离
- IE9 BUG overflow :auto 底部空白解决方案
- 【数据结构】范浩强Treap(非旋转平衡树)可持久化Treap总结
- 吸引子传播(Affinity Propagation)算法
- 【arXiv 2021】Cluster Contrast for Unsupervised Person Re-Identification(CCU)
- matlab编写二分法程序,我写的程序,想用Matlab二分法实现,望高手帮忙!
- 搭建文字转语音(TTS)服务器
- 香港开户炒股非常简单 体验香港开户流程
- python爬取新浪新闻首页_Python爬虫学习:微信、知乎、新浪等主流网站的模拟登陆爬取方法...
- Leecode 417. 太平洋大西洋水流问题
- [原创]移植imx8QXP MEK开发板运行QNX700的方法
- c235delc杂合变异遗传吗_新生儿235delc杂合突变