python - 如何使用 Pillow 包在图像文件上绘制段落
问题描述
我是枕头包的新手,我正在尝试绘制一个居中对齐大约 100 个单词的段落文本,但是文本超出了图像,我该如何管理它,下面是我尝试的代码:
请告诉我
谢谢你
def certgenerator(name,course,datetext,cid):
"""function to generate certificate"""
image_source = Image.open(r'/media/xxxxx/xxxxxxx/certgentestroom/certgen-1/originals/empty002.jpg')
spacing = 50
draw = ImageDraw.Draw(image_source)
x = datetime.now()
msg3 = x.strftime("%d.%m.%Y")
font = ImageFont.truetype("/media/xxxxxx/xxxxx/certgentestroom/fonts/ArialBold.ttf", size=60)
draw.multiline_text((750,730), msg3, fill ="black", font = font,spacing = spacing,align="center")
name_width, name_height = draw.textsize(name, font=font)
# draw.text((WIDTH-name_width/2, HEIGHT-name_height/2), name, fill=FONT_COLOR, font=font)
draw.text((750,850), name, fill=FONT_COLOR, font=font)
font = ImageFont.truetype("/media/xxxxxxx/xxxxxxxxxxx/certgentestroom/fonts/ArialBold.ttf", size=60)
name_width, name_height = draw.textsize(course, font=font)
# draw.text((CWIDTH-name_width/2, CHEIGHT-name_height/2), course, fill=FONT_COLOR, font=font)
draw.text((750,1100), course, fill=FONT_COLOR, font=font)
#Date generation module
#draw.multiline_text((2520,2490), msg3, fill ="black", font = font,spacing = spacing,align="center")
z=1220
x =0
y = len(description)
for i in range(x,y,12):
x = i
print("no.of words:",len(description[x:x+12]))
print (description[x:x+12])
j = ' '.join(description[x:x+12])
draw.multiline_text((755,z), j, fill ="black", font = font,spacing = spacing,align="center")
z=z+80
# font = ImageFont.truetype("/media/mgbhargava/Codegnan/certgentestroom/fonts/arial.ttf", size=30)
# draw.multiline_text((740,1220), decsription, fill ="black", font = font,spacing = spacing,align="center")
image_source.save( name+".jpg")
print('printing certificate of: '+name)
解决方案
是的,知道了,我尝试在空白背景上打印段落并在所需图像上渲染,谢谢帮助
推荐阅读
- c# - 尝试添加或更新嵌套对象时如何绕过错误 DbUpdateConcurrencyException?
- java - 向 Firebase 实时数据库中的现有整数数据添加值
- unison - 排除文件夹下的所有内容 *but* 某些文件类型(在任何嵌套级别)
- scala - 在 RDD 中添加列
- bash - 根据 SSID 更改 MacOS 位置 - 在更改之前检查当前位置
- amazon-web-services - AWS SAM 访问多个存储桶
- javascript - 使用 Bootstrap 显示/隐藏嵌套动态表的行
- ruby-on-rails - Rails 4.2 应用程序在虚拟专用服务器上的 2-3 小时空闲时间后没有响应
- json - 如何在 Dart 中将嵌套的 Json 传递到我的 http API
- java - Netbeans 11.3 Java - JPanel 设计选项卡被冻结,只有文字“正在加载...”