Python图像上添加文字用法介绍
- 编程知识
- 2023-09-10
- 2
Python是一门高级编程语言,它提供了丰富的库和模块,其中包含了对图像处理方面的支持。在对图像进行处理的过程中,添加文字是必不可少的一个步骤。那么,在Python中如何对图像上添加文字呢?本文将从多个方面进行详细的阐述。
一、使用Pillow库添加文字
Pillow是Python图像处理库中最常用的库之一,它是Python Imaging Library (PIL)的一个分支。使用Pillow库添加文字非常简单,只需要按照以下步骤进行操作:
from PIL import Image, ImageDraw, ImageFont #加载图像 image = Image.open("image.jpg") #创建绘图对象 draw = ImageDraw.Draw(image) #设置字体样式 font = ImageFont.truetype("arial.ttf", 36) #添加文字 draw.text((100, 100), "Hello World", font=font, fill=(255, 0, 0)) #保存图像 image.save("image_with_text.jpg")
以上代码首先将图像加载进来,然后创建一个绘图对象,设置字体样式,最后在指定位置添加文字并保存图像。其中,参数fill用于设置字体颜色,这里的(255, 0, 0)代表红色。
二、添加不同颜色和大小的文字
有时候,我们需要在同一张图片上添加不同颜色和大小的文字,这时可以使用Pillow库的multiline_text方法实现。下面是一个例子:
from PIL import Image, ImageDraw, ImageFont #加载图像 image = Image.open("image.jpg") #创建绘图对象 draw = ImageDraw.Draw(image) #设置字体样式 font = ImageFont.truetype("arial.ttf", 36) #添加文字 text1 = "Hello World!" text2 = "It's a beautiful day!" text3 = "Python is amazing!" draw.multiline_text((100, 100), text1, font=font, fill=(255,0,0)) draw.multiline_text((100, 160), text2, font=font, fill=(0, 255, 0), spacing=14) draw.multiline_text((100, 220), text3, font=font, fill=(0, 0, 255), align='right') #保存图像 image.save("image_with_text.jpg")
以上代码添加了三段不同颜色和大小的文字,其中使用了multiline_text方法,并且通过传递不同的参数实现不同的效果。比如,参数spacing用于设置行间距,参数align用于设置文字对齐方式。
三、在图像上添加水印
在对图片进行编辑和处理的过程中,添加水印是一个非常实用的功能。下面的例子演示了如何在图像的右下角添加一个透明度为50的水印。
from PIL import Image, ImageDraw, ImageFont #加载图像 image = Image.open("image.jpg") #创建绘图对象 draw = ImageDraw.Draw(image) #设置字体样式和大小 font = ImageFont.truetype("arial.ttf", 36) #水印文字 text = "Watermark" #添加水印 textwidth, textheight = draw.textsize(text, font) width, height = image.size x = width - textwidth - 10 y = height - textheight - 10 draw.text((x, y), text, font=font, fill=(255, 255, 255, 128)) #保存图像 image.save("image_with_watermark.jpg")
在以上代码中,我们首先加载了图像,然后创建一个绘图对象。接下来,我们设置了字体样式和大小,并且指定了水印文字。水印文字的大小和位置是通过计算得到的,最后将水印添加到图像上并保存。
四、使用OpenCV库添加文字
除了Pillow库外,Python还有OpenCV库用于图像处理。下面是使用OpenCV库添加文字的例子:
import cv2 #加载图像 image = cv2.imread("image.jpg") #设置字体样式和大小 font = cv2.FONT_HERSHEY_SIMPLEX fontscale = 1 thickness = 2 color = (255, 0, 0) #添加文字 text = "Hello World!" textsize = cv2.getTextSize(text, font, fontscale, thickness)[0] text_x = int((image.shape[1] - textsize[0]) / 2) text_y = int((image.shape[0] + textsize[1]) / 2) cv2.putText(image, text, (text_x, text_y), font, fontscale, color, thickness) #保存图像 cv2.imwrite("image_with_text.jpg", image)
以上代码中,我们首先加载图片,然后设置字体样式和大小。在添加文字时,我们使用了getTextSize方法获取文本大小,并且通过计算得到文本位置。最后将文本添加到图像上并保存。
五、结语
本文从使用Pillow库添加文字、添加不同颜色和大小的文字、在图像上添加水印以及使用OpenCV库添加文字等多个方面进行了详细的阐述。希望本文可以帮助读者更好地掌握在Python中对图像添加文字的技巧。