Spaces:
Running
on
L40S
Running
on
L40S
import cv2 | |
import numpy as np | |
def txt_to_img(text, font=cv2.FONT_HERSHEY_SIMPLEX, font_scale=1, font_thickness=2, img_width=1000, img_height=100, text_color=(0, 0, 0), bg_color=(255, 255, 255)): | |
lines = text.split('\n') | |
img_lines = [] | |
for line in lines: | |
# 计算每行文本的尺寸 | |
line_size, _ = cv2.getTextSize(line, font, font_scale, font_thickness) | |
line_width, line_height = line_size | |
# 创建包含当前行的图像画布 | |
img_line = np.full((int(line_height*1.5) , img_width, 3), bg_color, dtype=np.uint8) | |
text_x, text_y = 0, line_height | |
cv2.putText(img_line, line, (text_x, text_y), font, font_scale, text_color, font_thickness, cv2.LINE_AA) | |
img_lines.append(img_line) | |
# 垂直堆叠所有行图像 | |
img = np.vstack(img_lines) | |
return img |