red*_*arv 9 python png python-imaging-library
我需要在Python中将一些文本放在PNG图像上,我需要在第一个图像上放置另一个图像.
所以我将有一个基本图像(对于每个创建的图像都相同),在左上角放置一个徽标,在整个图像上放一个文本(非特定字体,我只需要设置字体大小).
我可以使用PIL或其他图书馆吗?
我也搜索过StackOverflow和Google,但我找不到如何做到这一点的提示.
谢谢.
Lou*_*nco 19
PIL可以做到:
from PIL import Image, ImageFont, ImageDraw
font = ImageFont.truetype("/usr/share/fonts/dejavu/DejaVuSans.ttf", 25)
img = Image.new("RGBA", (200,200), (120,20,20))
draw = ImageDraw.Draw(img)
draw.text((0,0), "This is a test", (255,255,0), font=font)
draw = ImageDraw.Draw(img)
img.save("a_test.png")
Run Code Online (Sandbox Code Playgroud)
唯一可能发生的错误是找不到字体.在这种情况下,您必须更改代码行:
font = ImageFont.truetype("/usr/share/fonts/dejavu/DejaVuSans.ttf",25)
Run Code Online (Sandbox Code Playgroud)
资料来源:http://python-catalin.blogspot.com/2010/06/add-text-on-image-with-pil-module.html
我认为opencv更容易使用:
import cv2
import numpy as np
import matplotlib.pyplot as plt
image = cv2.imread('xxx.png')
texted_image =cv2.putText(img=np.copy(image), text="hello", org=(200,200),fontFace=3, fontScale=3, color=(0,0,255), thickness=5)
plt.imshow(texted_image)
plt.show()
Run Code Online (Sandbox Code Playgroud)
请注意,原始图像可能会更改,因此我添加np.copy以保护它。有关该功能的更多详细信息是http://docs.opencv.org/2.4.8/modules/core/doc/drawing_functions.html?highlight=puttext#cv2.putText
fontFace 可以参考https://codeyarns.com/2015/03/11/fonts-in-opencv/
| 归档时间: |
|
| 查看次数: |
20540 次 |
| 最近记录: |