2 Stimmen

PIL stellt Schriftarten nicht einheitlich auf allen Rechnern dar

Ich habe einen Code geschrieben, der ein Bild ausspuckt. Der Code läuft auf meinem lokalen Rechner und ergibt dieses Bild:

http://img32.yfrog.com/img32/9476/local.png

und bei meinem Webhost sieht es so aus:

Gastgeber http://img32.imageshack.us/img32/858/hoste.png

Wie Sie sehen können, sind sie unterschiedlich. Der obere ist viel schöner. Beide verwenden denselben Code, dieselbe Schriftartdatei (VeraMoBd.ttf), dieselbe Version von PIL (1.1.6) und dieselbe Python-Version (2.6).

Ich habe herumgegoogelt und es scheint keine globalen Einstellungen zu geben, die sich darauf beziehen, wie PIL Schriftarten wiedergibt... Was könnte die Ursache für unterschiedliche Ergebnisse sein?

4voto

bobince Punkte 512550

Ich würde erraten dass das obere Bild mit aktivierter TrueType-Hinting-Bytecode-VM gerendert wurde, während für das untere Bild nur die automatische Hinting-Funktion von FreeType verwendet wurde. (Ich persönlich bevorzuge das untere Bild!)

Leider gibt es sie, Software-Patent Probleme, die dazu führen, dass die Hinting-Bytecode-Funktion nicht bei allen Binär-Builds verfügbar ist. Aus diesem Grund ist es kein einfaches Laufzeit-Feature, das man aktivieren und deaktivieren kann, sondern etwas, das zur Kompilierzeit entschieden wird. Wenn Sie Ihre eigene Kopie von FreeType kompilieren, können Sie die Funktion aktivieren, indem Sie #define -das Flag TT_CONFIG_OPTION_BYTECODE_INTERPRETER in config/ftoption.h -wenn Ihr Anwalt das für eine gute Idee hält.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X