Utilizzo dei caratteri pixel in PIL
Domanda
Sto creando immagini usando PIL che contengono numerose stringhe di testo posizionate esattamente. Il mio primo tentativo è stato di convertire i caratteri pixel nel formato compatibile pil come descritto qui . Ad esempio, scarico il carattere Silksreen e lo converto:
otf2bdf -p 8pt -o fonts/slkscr.bdf fonts/slkscr.ttf
pilfont.py fonts/slkscr.bdf
Posso quindi usare il carattere in PIL in questo modo:
import Image, ImageDraw, os, sys, ImageFont
im = Image.new("RGB", (40,10))
draw = ImageDraw.Draw(im)
fn = ImageFont.load('fonts/slkscr.pil')
draw.text((0,0), "Hello", font=fn)
del draw
# write to stdout
im.save(sys.stdout, "PNG")
Tuttavia, l'immagine risultante () non riflette ciò che il carattere dovrebbe apparire come .
Quale procedura dovrei usare per convertire e usare i caratteri pixel in modo da renderli come previsto?
Grazie in anticipo.
Soluzione
Eureka!
Ho solo bisogno di specificare una risoluzione di 72 dpi (il valore predefinito è 100) per otf2bdf:
otf2bdf -p 8 -r 72 -o fonts/slkscr.bdf fonts/slkscr.ttf
Ora, sembra fantastico!
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow