2010-04-28 42 views
4

J'essaie de changer la taille de la police en utilisant la bibliothèque ImageDraw de python.Comment changer la taille de la police en utilisant la bibliothèque Python ImageDraw

Vous pouvez faire quelque chose comme this:

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") 

Le problème est que je ne veux pas spécifier une police. Je veux utiliser la police par défaut et juste changer la taille de la police. Cela me semble que devrait être simple, mais je ne trouve pas de documentation sur la façon de le faire.

Répondre

5

Par PIL's docs, ImageDraw La police par défaut est une police bitmap, et par conséquent, elle ne peut pas être mise à l'échelle. Pour la mise à l'échelle, vous devez sélectionner une police de type vrai. J'espère que ce n'est pas difficile de trouver une belle police TrueType qui "ressemble un peu" à la police par défaut dans la taille de votre police désirée!

0

Il suffit de faire ce

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())