龙空技术网

用python批量给图片加文字

非知名码农 508

前言:

目前小伙伴们对“python批量生成文字图片”大体比较着重,你们都想要学习一些“python批量生成文字图片”的相关知识。那么小编在网络上汇集了一些有关“python批量生成文字图片””的相关内容,希望你们能喜欢,你们一起来了解一下吧!

今天LP大人,有几百张各种细菌的图片要发到一个微信群,但是她尝试了几张后发现,发过去的图片在群里面没有显示它本来的名称,点开图片也看不到细菌的名字,本来我是打算让她把图片打成压缩包发过去,别人一解压,压缩包里有图片带名字的,但人家不愿意,说领导让直接一张一张发群里,我也不晓得她们领导发哪样神经,不过呢,LP的领导管着她,她又管着我,最后这差事只能落我手里了。

几百张图片,我也不可能去一张一张打开用PS给加文字,而且它每张图片的名字都不一样,那些批量给图片加水印的软件也用不上了。

只能自己写一个了,还好也不难,原理嘛,就是用python遍历图片文件,把图片文件名取出来,变成文字,给画到图片上,最后另存。

下面是源码:

# pip install pillow# Importing the PIL libraryfrom PIL import Imagefrom PIL import ImageDrawfrom PIL import ImageFontimport osimport reimport shutilpath = os.getcwd()              #取当前目录if (os.path.exists("out")):     	shutil.rmtree("out")        # 递归删除非空文件夹os.mkdir("out")                 # 创建一个out目录,打上文字的图片放这个目录,避免覆盖原图lsts = os.listdir(path)         # 目录文件列表for fname in lsts:              # 遍历每一个文件	if (re.search(r'bmp|jpg',fname)==None):     # 如果不是bmp和jpg格式的略过		continue	fullName = "%s\\%s"%(path,fname)    # 得到该文件完整路径	# Open an Image	img = Image.open(fullName)  # 打开图片	# Call draw Method to add 2D graphics in an image	I1 = ImageDraw.Draw(img)    # 准备画图	myFont = ImageFont.truetype('simsun.ttc', 65) # 加载字体文件 	# Add Text to an image	I1.text((28, 36), re.sub(r"\.(bmp|jpg)", "", fname), font=myFont, fill=(255, 0, 0))  # 将文件名去后缀后画在图片上	# Display edited image	# img.show()	# Save the edited image	img.save("%s\\out\\%s"%(path,fname))      # 图片另存到 out 目录

说明,simsun.ttc 文件怎么获取:

1,开始 -> 运行,输入 control ,并确定

2,打开控制面板后,搜索“字体”

3,打开字体目录,并搜索““simsun.ttc””

4,复制到你的程序文件同目录就行了。

标签: #python批量生成文字图片 #python给批量图片添加文字