如何使用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" )
问题是我不想指定一个字体。我想使用默认字体,只改变字体的大小。对我来说,这应该很简单,但我找不到相关的文档来说明该怎么做。
3 个回答
-1
你可以先把图片缩小,然后在上面写文字,最后再把图片放大回来:
im = ImageOps.scale(im, 0.5)
draw = ImageDraw.Draw(im)
draw.text((0, 0),"MyText",(0,0,0))
im = ImageOps.scale(im, 2)
这样做实际上是把字体大小增加了两倍。
10
只需这样做
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())
19
根据PIL的文档,ImageDraw
的默认字体是一种位图字体,这种字体是不能放大的。如果你想放大字体,就需要选择一种真正的字体(真字型字体)。我希望找到一种“看起来有点像”你想要的默认字体,并且适合你需要的字体大小的真字型字体不会太难!