2009-11-29 39 views

Respuesta

8

Uso de la versión en negrita/cursiva de la fuente

+3

Solo para aclarar: cada versión del tipo de letra viene en un archivo separado, por ejemplo: Arial.ttf, ArialBold.ttf, etc .. – btk

4

Muchas fuentes utilizan diferentes archivos TTF para sus versiones en negrita/cursiva, así que me imagino que si solo especifica ese archivo, funcionaría.

1

Bueno, este es mi primer comentario. Aquí vamos.

Trataré de aclarar el procedimiento. Al principio Lo que hice fue usar el "nombre" de la fuente como esta

font = ImageFont.truetype("C:\Windows\Fonts\\Arial Negrita.ttf",25) 

pero sólo tiene algunos errores como este:

Traceback (most recent call last): 
    File "C:/Users/555STi/PycharmProjects/PIL/img.py", line 8, in <module> 
    font = ImageFont.truetype("C:\Windows\Fonts\Arial negrita.ttf",25) 
    File "C:\Python27\lib\site-packages\PIL\ImageFont.py", line 262, in truetype 
    return FreeTypeFont(font, size, index, encoding) 
    File "C:\Python27\lib\site-packages\PIL\ImageFont.py", line 142, in __init__ 
    self.font = core.getfont(font, size, index, encoding) 
IOError: cannot open resource 

Entonces me acordé de que a veces las fuentes tiene otros "nombres" o "nombres de archivo", entonces, lo que hice fue ir a la carpeta de fuentes, luego abrí la fuente Arial que mostraba todos los estilos como negrita (negrita), cursiva (cursiva), etc.

Hizo clic derecho en "negrita" "estilo," propiedades "seleccionadas y luego estaba el" nombre real "de la fuente.

En mi caso, el nombre era "ariblk"

Entonces, finalmente, acabo de utilizar el nombre así.

font = ImageFont.truetype("C:\Windows\Fonts\\ariblk.ttf",25) 

Sé que esta publicación es antigua, pero hoy me ha ayudado a llegar a la solución. Así que espero ayudar a cualquiera.

=)

+0

¿Esto responde a la pregunta de la OP? – Nilambar

+0

@Nilambar, ¿qué quieres decir? Lo siento, soy un poco nuevo por aquí. –

+0

@NikolaiMilos Quiere decir que el póster original (OP) preguntó acerca de algo bastante específico. Está respondiendo la pregunta "¿por qué me aparece un error cuando cargo la fuente Arial Negrita?" Si vuelves a leer la pregunta, notarás que es completamente diferente. – Paragon

3

Una solución bastante hacky para hacer una fuente en negrita si (por cualquier razón) que no tiene una versión en negrita separada de la fuente es imprimir el mismo texto varias veces con un desplazamiento ligero.

andaleMono = ImageFont.truetype(ANDALE_MONO_PATH,16) 
text = "hello world" 
mainOffset = (50,50) 
xoff, yoff = mainOffset 
draw.text(mainOffset,text,font=andaleMono,fill='black') 
draw.text((xoff+1,yoff+1),text,font=andaleMono,fill='black') 
draw.text((xoff-1,yoff-1),text,font=andaleMono,fill='black')