So - hallo Leute^^,
Wenn ich eine Font mit ImageFont.truetype öffne ist alles okay, jedoch wenn ich es mit ImageFont.FreeTypeFont probiere - bekomme ich einen Error "File "C:\Python25\lib\site-packages\PIL\ImageFont.py", line 121, in __init__
self.font = _imagingft.getfont(file, size, index, encoding)
IOError: cannot open resource"
Liegt wahrscheinlich daran, da FreeTypeFont imagingft service benötigt - Nun wollte ich fragen, wie ich das nun lösen könnte^^.
Vielen Dank im Voraus!
seey'
Python - PIL --> ImageFont
-
- User
- Beiträge: 15
- Registriert: Donnerstag 23. Juli 2009, 10:20
- Wohnort: Österreich (Niederösterreich)
mit TTC's mit TTF's ist alles okay, weil ich hol mir nämlich mit getsize die width und height. Wenn ich das mit TTF's mache alles in Butter, aber bei TTC's ist das spacing einfach "zu" groß (klingt vielleicht etwas komisch). Natürlich könnte ich mit FontCollector immer die TTC nehmen und zu TTFs machen, aber das würde ich mir gerne ersparen.
seey'
seey'
@Meitei: Ich weiss zwar nicht genau was das bedeutet, bin mir aber ziemlich sicher das `FreeTypeFont` direkt zu verwenden, statt sich von der `truetype()`-Funktion so ein Objekt geben zu lassen, keinen Unterschied macht. Die Funktion sucht halt unter Windows nur zusätzlich im entsprechenden Windows-Systemverzeichnis nach der Datei falls sie im aktuellen bzw. angegebenen Verzeichnis nicht gefunden wird.
-
- User
- Beiträge: 15
- Registriert: Donnerstag 23. Juli 2009, 10:20
- Wohnort: Österreich (Niederösterreich)
Hm~... Okay, danke^^
Aber wieso gibt mit FreeTypeFont überhaupt so einen Error aus? Weil getfont vom _imagingft module gibt mir ebenfalls 'n Error aus, glaube sogar denselben. Naja könnte das Problem vielleicht sein, dass er bei TTC sich nicht mehr auskennt welche Font er nehmen soll - da es ja eine Ansammlung von Fonts ist, und deshalb sowas macht?
Dachte mir, dass FreeTypeFont da vielleicht noch paar andere Sachen zusätzlich macht, die truetypefont nicht macht, aber wenn es nur zur Sicherheit falls die Font nicht gefunden wurde nochmal im System sucht, bringt mich das auch nicht weiter :/.
seey'
Aber wieso gibt mit FreeTypeFont überhaupt so einen Error aus? Weil getfont vom _imagingft module gibt mir ebenfalls 'n Error aus, glaube sogar denselben. Naja könnte das Problem vielleicht sein, dass er bei TTC sich nicht mehr auskennt welche Font er nehmen soll - da es ja eine Ansammlung von Fonts ist, und deshalb sowas macht?
Dachte mir, dass FreeTypeFont da vielleicht noch paar andere Sachen zusätzlich macht, die truetypefont nicht macht, aber wenn es nur zur Sicherheit falls die Font nicht gefunden wurde nochmal im System sucht, bringt mich das auch nicht weiter :/.
seey'
@Meitei: `FreeTypeFont` gibt dir diesen Fehler aus, weil die Datei, die Du da angibst *dort* nicht existiert. Genau *den* Fehler fängt `truetype()` nämlich ab und sucht noch woanders.
Wenn Du *noch* eine Abstraktionsschicht runtergehst und `_imagingft.getfont()` direkt aufrufst, wird es dadurch natürlich nicht besser.
Wenn Du *noch* eine Abstraktionsschicht runtergehst und `_imagingft.getfont()` direkt aufrufst, wird es dadurch natürlich nicht besser.
-
- User
- Beiträge: 15
- Registriert: Donnerstag 23. Juli 2009, 10:20
- Wohnort: Österreich (Niederösterreich)
Ah, cool - jetzte versteh ich's xD.
Danke für die Antwort BlackJack
EDIT: Was ist eigentlich dieser "index" der standardmäßig auf 0 gesetzt ist? Und was für encoding's gibt es. Ich kenne daweil nur die, die auch im PIL-Handbook sind?
seey';)
Danke für die Antwort BlackJack
EDIT: Was ist eigentlich dieser "index" der standardmäßig auf 0 gesetzt ist? Und was für encoding's gibt es. Ich kenne daweil nur die, die auch im PIL-Handbook sind?
seey';)