5

Welche Schriftarten können mit PIL in App Engine verwendet werden?Welche Systemschriften stehen für PIL in Google App Engine zur Verfügung?

Ich weiß, ich kann eine Schriftart als Teil der Anwendung hochladen, aber was ich im Grunde will, ist ein System zur Verfügung gestellt Sans-Serif, das mit Unicode-Zeichen, die eine gut aussehende Helvetica (oder Alternative) ist. Auf Google-Servern sind möglicherweise bereits einige Schriftarten installiert, und dazu möchte ich einen Einblick erhalten.

Ich möchte eine Schriftart zu verwenden, die Unicode-fähig ist, so dass japanische und andere Zeichen ordnungsgemäß mit PIL rendern.

Ich habe eine Webseite, die Unicode-Zeichen ordnungsgemäß mit der Schriftfamilie "Helvetica Neue", Helvetica, Arial, Sans-Serif;

Wenn ich PIL verwenden, um die gleichen Unicode-Zeichen zu rendern, werden sie nicht richtig dargestellt. Die Schriftart, die ich als Teil der App hochgeladen habe, enthält nicht die erforderlichen Unicode-Zeichen in der Schriftart.

Hier sind die relevanten Python-Codezeilen von dem, was ich jetzt benutze.

import Image, ImageDraw, ImageFont 

draw = ImageDraw.Draw(my_output) 
font = ImageFont.truetype("FontIAmUsing.otf", font_size, encoding="utf-8") 
draw.text((5, 51), 'abc', fill='#2A2A2A', font=font) 
+0

Wie verwenden Sie die Schriftart? Haben Sie Code-Snippets? (Ich kenne mich mit PIL nicht aus und versuche etwas zu tun, um mich umzusehen. ZB 'import os, PIL; drucke os.listdir (os.path.dirname (PIL .__ file __))' von https: // shell-27 .appspot.com) – bossylobster

+0

Wo lebt die Datei '" FontIAmUsing.otf "typischerweise? IIUC, sollte es in dem Verzeichnis sein, in dem du den Code anrufst. Könntest du die Schriftart nicht einfach in deine Anwendung einbinden und mit der Datei bereitstellen? [Dieser Artikel] (http://www.leancrew.com/all-this/2008/11/truetype-fonts-for-the-python-imaging-library/) scheint zu behandeln, wo Schriften aufbewahrt werden und wie Sie diese einschließen könnten sie lokal. – bossylobster

+0

Rechts. Ich habe diesen Artikel gelesen und lade meine Schrift hoch. Ich hoffe, dass es eine Systemschriftart gibt, die mit Unicode-Zeichen wie sans-serif nur für Webseiten funktioniert, die Unicode-Zeichen verwenden. Auf einem Mac glaube ich, dass die Sans-Serif auf Helvetica zurückfällt. Ich habe keine Helvetica-Schriftart mit Unicode-Zeichen zum Hochladen als Teil der App. Ich hoffe immer noch, dass Google einige System-installierte Schriften (Helvetica?) Haben könnte, die ich verwenden könnte. – philipfc

Antwort

4

Bedenkt man, dass PIL nur Schiffe mit einer Standard-Bitmap-Schrift (hässlich und wahrscheinlich nicht einer sehr großen Auswahl von Unicode-Zeichen enthält) und da Sie den vollständigen Pfad zu Ihrer Font-Datei zur Verfügung zu stellen und Sie können nicht außerhalb bekommen Wenn Sie Ihre Sandbox-Umgebung in GAE verwenden, laden Sie einfach Ihre Fonts zusammen mit Ihrer Anwendung hoch. Wenn Sie keinen Pfad angeben, wird der Stamm Ihrer Webanwendung angezeigt. Ich verwende den GoogleAppEngineLauncher für OSX und lade beim Deployment alle gefundenen Dateien hoch (einschließlich der .ttf, die ich mit ImageDraw verwende).

Die Dokumentation unter http://effbot.org/imagingbook/imagefont.htm besagt: (Neu in 1.1.4) Laden Sie eine Standardschrift "Besser als nichts". Ich habe gerade bestätigt, dass die Standardschriftart auf GAE verfügbar ist.

+0

Ich habe mich entschieden, eine Schriftart hochzuladen, wie Sie es vorschlagen. – philipfc

Verwandte Themen