如何使用 Python ImageDraw 库更改字体大小

新手上路,请多包涵

我正在尝试使用 python 的 ImageDraw 库更改字体大小。

你可以这样

 fontPath = "/usr/share/fonts/dejavu-lgc/DejaVuLGCSansCondensed-Bold.ttf"
sans16  =  ImageFont.truetype ( fontPath, 16 )

im  =  Image.new ( "RGB", (200,50), "#ddd" )
draw  =  ImageDraw.Draw ( im )
draw.text ( (10,10), "Run awayyyy!", font=sans16, fill="red" )

问题是我不想指定字体。我想使用默认字体,只是更改字体的大小。在我看来,这 应该 很简单,但我找不到有关如何执行此操作的文档。

原文由 Eldila 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.4k
2 个回答

根据 PIL 的文档ImageDraw 的默认字体是位图字体,因此无法缩放。对于缩放,您需要选择一种 True-Type 字体。我希望找到一种漂亮的 truetype 字体并不难,它“看起来有点像”您所需字体大小的默认字体!

原文由 Alex Martelli 发布,翻译遵循 CC BY-SA 2.5 许可协议

就这样做

from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont

def image_char(char,image_size, font_size):
        img = Image.new("RGB", (image_size, image_size), (255,255,255))
        print img.getpixel((0,0))
        draw = ImageDraw.Draw(img)
        font_path = "/Users/admin/Library/Fonts/InputSans-Regular.ttf"
        font = ImageFont.truetype(font_path, font_size)

        draw.text((5, 5), char, (0,0,0),font=font)
        img.show()

main():
       image_char("A",36,16)

if __name__ == '__main__':
       sys.exit(main())

原文由 loretoparisi 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏