在Python中,要在图片上显示中文,你可以使用PIL(Python Imaging Library)或OpenCV库。以下是使用PIL和OpenCV显示中文的两种方法:
使用PIL显示中文
1. 确保你有支持中文的字体文件,例如`simsun.ttc`。
2. 使用`ImageFont.truetype`加载字体文件。
3. 使用`ImageDraw.Draw`对象在图片上绘制文本。
示例代码:
from PIL import Image, ImageDraw, ImageFont
import numpy as np
加载背景图片
chinese_image = np.array(Image.open('chinese_image.jpg'))
创建一个可以在给定图像上绘图的对象
draw = ImageDraw.Draw(chinese_image)
加载字体文件
font = ImageFont.truetype('simsun.ttc', 34)
绘制文本
text = '中文'
text_size = font.getsize_multiline(text)
draw.text((10, 10), text, font=font, fill=(255, 0, 0))
保存图片
chinese_image = Image.fromarray(chinese_image)
chinese_image.save('chinese_image_with_text.jpg')
使用OpenCV显示中文
1. 确保你有支持中文的字体文件,例如`simsun.ttc`。
2. 使用`cv2.putText`方法在图片上添加文字。
3. 使用`cv2.FONT_HERSHEY_SIMPLEX`或其他字体风格。
示例代码:
import cv2
加载背景图片
bk_img = cv2.imread('background.jpg')
在图片上添加文字信息
cv2.putText(bk_img, 'Hello World', (100, 300), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (255, 255, 255), 1, cv2.LINE_AA)
显示图片
cv2.imshow('add_text', bk_img)
cv2.waitKey()
保存图片
cv2.imwrite('add_text.jpg', bk_img)
使用matplotlib显示中文
1. 确保你有支持中文的字体文件,例如`SimHei.ttf`。
2. 设置`rcParams`中的`font.sans-serif`和`axes.unicode_minus`参数。
示例代码:
import matplotlib.pyplot as plt
设置字体参数
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
绘制图形
plt.hist(roll_list, bins=range(2, 14), normed=1, edgecolor='black', linewidth=1)
plt.title('骰子点数直方图统计')
plt.xlabel('点数')
plt.ylabel('概率')
plt.show()
请确保你的环境中安装了相应的字体文件,并且字体文件路径正确。如果使用的是Jupyter Notebook,你可能需要先安装字体文件,或者将字体文件路径添加到系统环境变量中。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://sigusoft.com/bj/113388.html