python 读一张图片,并在上面显示“你好”文本
时间: 2023-12-27 15:03:16 浏览: 63
好的,您可以使用Python中的Pillow库来读取图片并添加文本。下面是一个示例代码:
```python
from PIL import Image, ImageDraw, ImageFont
# 打开图片
image = Image.open("image.jpg")
# 创建一个Draw对象
draw = ImageDraw.Draw(image)
# 设置文本内容和字体
text = "你好"
font = ImageFont.truetype("arial.ttf", 36)
# 获取文本大小和位置
text_size = draw.textsize(text, font)
text_position = ((image.width - text_size[0]) // 2, (image.height - text_size[1]) // 2)
# 在图片上添加文本
draw.text(text_position, text, font=font, fill=(255, 255, 255))
# 保存修改后的图片
image.save("output.jpg")
```
请确保将“image.jpg”替换为您要读取的实际图像的文件名,并将字体文件“arial.ttf”放在您的工作目录中。此代码将在图像的中央添加“你好”的文本,并将修改后的图像保存为“output.jpg”。
相关问题
在图片上显示汉字python代码
在Python中,可以使用Pillow库(PIL的升级版)来在图片上显示汉字。以下是一个简单的示例代码:
```python
from PIL import Image, ImageDraw, ImageFont
# 打开一张图片
image = Image.open('example.jpg')
# 初始化ImageDraw对象
draw = ImageDraw.Draw(image)
# 设置字体和大小
font = ImageFont.truetype('simsun.ttc', 40) # 使用宋体,大小为40
# 在图片上添加文字
draw.text((10, 10), '你好,世界!', font=font, fill=(255, 255, 255))
# 保存或显示图片
image.save('output.jpg')
image.show()
```
这段代码首先加载一张名为`example.jpg`的图片,然后创建一个`ImageDraw`对象用于绘制。接着,它设置了一个字体(这里使用的是宋体,文件名为`simsun.ttc`,需要确保这个字体文件在你的系统中是可用的),并指定了字体的大小。之后,使用`draw.text()`方法在图片上的指定位置(这里是坐标(10, 10))添加了文本“你好,世界!”,字体颜色设置为白色。最后,代码将修改后的图片保存为`output.jpg`并显示出来。
使用cv2在图片上添加指定字体的中文文字
要在图片上添加指定字体的中文文字,可以使用OpenCV库(cv2)和Pillow库。以下是一个示例代码:
```python
import cv2
from PIL import ImageFont, ImageDraw, Image
# 读取图片
img = cv2.imread("image.jpg")
# 将OpenCV图像从BGR转换为RGB
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
# 转换为Pillow图像
pil_img = Image.fromarray(img)
# 加载字体文件
font_path = "font.ttf"
font = ImageFont.truetype(font_path, size=24)
# 创建一个可以在给定图像上绘图的对象
draw = ImageDraw.Draw(pil_img)
# 绘制文本
text = "你好,世界"
draw.text((50, 50), text, font=font, fill=(255, 255, 255))
# 将Pillow图像转换为OpenCV图像
img = cv2.cvtColor(np.array(pil_img), cv2.COLOR_RGB2BGR)
# 显示图像
cv2.imshow("image", img)
cv2.waitKey()
cv2.destroyAllWindows()
```
在上述代码中,我们首先读取了一张图片,然后将其从BGR格式转换为RGB格式。接下来,我们使用Pillow库加载指定的字体文件,并创建一个可以在图像上绘图的对象。然后,我们使用`draw.text()`方法将指定的中文文本绘制在图像上。最后,我们将Pillow图像转换为OpenCV图像,并显示它。
请注意,如果要在Windows上使用中文字体,可能需要指定字体文件的全路径。另外,需要确保字体文件支持中文字符。
阅读全文