gpt4 book ai didi

python - 从字体创建文本预览的方法

转载 作者:太空宇宙 更新时间:2023-11-03 19:38:45 24 4
gpt4 key购买 nike

我目前正在使用 ImageMagick 的转换命令从 .ttf 字体文件创建文本预览 (.png)。总的来说,尽管有时无法读取一些有效的 .ttf 文件,但它在自动文本定位方面表现更好。速度不是很快,但还可以接受。

PIL的ImageFont看起来不擅长文本对齐,经常将第一个字符的左下角打印到 Canvas 之外。

除了以上两个之外,还有谁知道更好的选择吗?我想知道需要什么技术来支持像 myfonts.com 这样流量如此大的网站上的文本预览部分。

编辑

PIL Font 示例未能正确绘制字体。示例中使用的字体为Hanford script

import Image, ImageDraw, ImageFont
font = ImageFont.truetype('HANFORD_.TTF', 122)
text_width, text_height = font.getsize('Hanford script')
print text_width, text_height
>>> 833 47
img = Image.new('RGBA', (text_width, text_height))
draw = ImageDraw.Draw(img)
draw.text((0, 0), 'Hanford script', font=font, fill=(0, 0, 0))
img.save('output.png')

输出图像仅包含“Hanford script”的上半部分。

我尝试使用 imagemagick 的转换命令:

convert -font "HANFORD_.TTF" -background transparent -gravity center -size 830x80 label:'Hanford script' output.png

输出图像与我通过 PIL 得到的图像相同。

这并不是 PIL 或 imagemagick 无法获得正确文本大小的唯一字体。使用其他一些字体,例如 Ginga ,它们只是放大文本高度,导致输出图像的上半部分是空白的。有谁知道原因吗?

最佳答案

我想这些网站是由一些自定义代码驱动的,使用类似 Pango 的东西。 ,或者只是简单的 Freetype在后端渲染到图像文件。

尽管我确信图像会在适当的地方进行缓存,但图像很可能永远不会写入光盘。

关于python - 从字体创建文本预览的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1920129/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com