ImageFont's getsize() does not get correct text size?

后端 未结 3 693
面向向阳花
面向向阳花 2021-01-05 20:35

I use the following two methods to to generate text preview image for a .ttf font file

PIL method:

def make_preview(text, fontfile,          


        
3条回答
  •  醉梦人生
    2021-01-05 20:55

    In this case, just specify ImageMagick to use a larger canvas size with a fixed font size and it will draw text at specified point size while keeping its integrity.

    def make_preview(text, fontfile, imagefile, fontsize=30):
        p = subprocess.call(['convert', '-font', fontfile, '-background', 
            'transparent', '-gravity', 'center', '-size', '1500x300',
            '-pointsize', str(fontsize),  '-trim', '+repage', 'label:%s' % text, image_file]) 
        return p==0 
    

    If you need to fit text into specified canvas rather than using a fixed point size, you may need to resize the output image after it's created.

    PIL doesn't do this very well drawing exotic fonts, no matter what point size you specify to load a font, it always overflows text outside output image.

提交回复
热议问题