2009-09-19 10 views
2

J'ai écrit du code qui crache une image. Le code a couru sur mon rendement de la machine locale cette image:PIL ne rend pas les polices uniformément sur les machines

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

et sur mon hébergeur, il ressemble à ceci:

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

Comme vous pouvez le voir, ils sont différents. Le top est beaucoup plus agréable. Les deux utilisent le même code, et le même fichier de police (VeraMoBd.ttf), la même version de PIL (1.1.6), et la même version de Python (2.6).

J'ai fait un tour d'adresse et il ne semble y avoir aucune sorte de paramètres globaux relatifs à la façon dont PIL rend les polices ... Qu'est-ce qui pourrait causer des résultats différents?

+0

Probablement FreeType compilé avec différentes fonctionnalités. –

Répondre

4

Je voudrais deviner que l'image du haut a été rendue avec la VM TrueType indiquant que le bytecode était activé, alors que le bas n'utilisait que le mode automatique de FreeType. (Personnellement, je préfère le fond!)

Malheureusement, il existe software patent problèmes qui signifient que la fonctionnalité bytecode hinting n'est pas disponible sur toutes les versions binaires. C'est pourquoi ce n'est pas une simple fonctionnalité d'exécution que vous pouvez activer et désactiver, mais quelque chose qui est décidé lors de la compilation. Si vous compilez votre propre copie de FreeType, vous pouvez activer la fonction par #define en utilisant le flag TT_CONFIG_OPTION_BYTECODE_INTERPRETER en config/ftoption.h - si votre avocat estime que c'est une bonne idée.

Questions connexes