使用了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库,可直接引用相关推荐

  1. python自带的PIL库扩展图片大小给图片加上文字描述

    利用python自带的PIL库扩展图片大小给图片加上文字描述.大多都是库函数调用,只是给定图片宽度后计算文字所需行数的代码需要写. 代码比较丑,but it works. #!/usr/bin/env ...

  2. Python 随笔:用 PIL 库读取图像文件像素长宽大小

    Python 随笔:用 PIL 库读取图像文件像素宽高大小 1.前言 安装 PIL 库(全称是pillow),所以安装命令上的名称是pillow pip install pillow 2. 使用pil ...

  3. python文字转为图片

    python文字转为图片 一.文字横向排列 二.文字纵向排列 一.文字横向排列 #文字横向排列 import os from io import BytesIO from PIL import Ima ...

  4. python:程序猿的方式在元宵佳节之际,带你设计【东方明珠】动画浪漫烟花秀(python编程利用Tkinter+PIL库)

    python:程序猿的方式在元宵佳节之际,带你设计[东方明珠]动画浪漫烟花秀(python编程利用Tkinter+PIL库) 目录 设计动画展示 设计思路 核心代码 设计动画展示 设计思路 核心代码 ...

  5. python文字转图片(二值、RGB)以及numpy数组

    文字一般使用unicode等编码的形式在计算机中表示,但是其形态本身也很有价值.如果能够把文字转为图片,就可以做一些应用,比如: 基于最近邻查找来实现简单的OCR文字识别 从像素中提取特征用于机器学习 ...

  6. Python文字转图片 | 诗词歌词格言生成配图卡片

    问题来源 最近这几天因为新型冠状病毒疫情的缘故,不得不宅在家里,学业荒废,心中烦闷浮躁.想要静下心来,整理过去,思考当下,展望未来.整理过去包括整理几年来的手机照片.备忘录.浏览器书签.收藏等等,发现 ...

  7. python文字转图片_技能:如何使用Python将文本转为图片

    更多腾讯海量技术文章,请关注云加社区:https://cloud.tencent.com/developer/column 作者:CDA数据分析师 摘要:有时候,我们需要将文本转换为图片,比如发长微博 ...

  8. python文字转图片_Python 将文本转为图片

    有时候,我们需要将文本转换为图片,比如发长微博,或者不想让人轻易复制我们的文本内容等时候.目前类似的工具已经有了不少,不过我觉得用得都不是很趁手,于是便自己尝试实现了一个. 在 Python 中,PI ...

  9. Python笔记八:PIL库的使用

    PIL库支持图像存储.显示和处理,它能够处理几乎所有的图片格式,可以完成对图像的缩放.剪裁.叠加以及向图像添加线条.图像和文字等操作. 1.  图像归档(Image Archives).PIL非常适合 ...

最新文章

  1. java用if语句调用方法_J2SE中main函数中的if语句想要调用另一个类的方法怎么能实现?...
  2. SpringBoot 2 + Spring Security 5 + JWT 的单页应用 Restful 解决方案
  3. 最新zendframework1.11使用
  4. Flink从入门到精通100篇(二十三)-基于Apache Flink的爱奇艺实时计算平台建设实践
  5. 深入学习__doPostBack函数
  6. error: object MultivariateNormalDistribution is not a member of package
  7. Android图表控件MPAndroidChart——曲线图LineChart的使用(财富收益图)
  8. win7 64位出现桌面右键鼠标显示忙碌
  9. 通过MVC模式将Web视图和逻辑代码分离
  10. IE9 BUG overflow :auto 底部空白解决方案
  11. 【数据结构】范浩强Treap(非旋转平衡树)可持久化Treap总结
  12. 吸引子传播(Affinity Propagation)算法
  13. 【arXiv 2021】Cluster Contrast for Unsupervised Person Re-Identification(CCU)
  14. matlab编写二分法程序,我写的程序,想用Matlab二分法实现,望高手帮忙!
  15. 搭建文字转语音(TTS)服务器
  16. 香港开户炒股非常简单 体验香港开户流程
  17. python爬取新浪新闻首页_Python爬虫学习:微信、知乎、新浪等主流网站的模拟登陆爬取方法...
  18. Leecode 417. 太平洋大西洋水流问题
  19. [原创]移植imx8QXP MEK开发板运行QNX700的方法
  20. c235delc杂合变异遗传吗_新生儿235delc杂合突变

热门文章

  1. python一键安装所有插件_python 离线安装插件包
  2. linux上vi好用的插件,Vim好用的插件: vundle
  3. ioctl 函数详解
  4. 15 张令人喷饭的 IT 趣图
  5. 【STM32F103】PB3和PB4不能按照设置输出相应的电平问题
  6. 虚拟容器LXD命令详解
  7. (转载)zigbee zcl规范及其协议栈实现2
  8. 计算机仿真投稿文件,《计算机仿真》投稿规范和要求
  9. 敏捷开发方法scrum_Scrum已死:分解新的开放开发方法
  10. 搭建全国离线地图数据服务器解决方案