5

Quali tipi di carattere sono disponibili per l'utilizzo con PIL su App Engine?Quali font di sistema sono disponibili per PIL su Google App Engine?

So che posso caricare un font come parte dell'applicazione, ma quello che fondamentalmente voglio è un sistema fornito sans-serif che funzioni con caratteri unicode che sia una buona Helvetica (o alternativa). I server di Google potrebbero già avere alcuni font installati e questo è ciò che vorrei approfondire.

Mi piacerebbe trovare un font da utilizzare che sia in grado di unicode in modo che i caratteri giapponesi e altri vengano visualizzati correttamente utilizzando il PIL.

Ho una pagina Web che rende correttamente i caratteri Unicode utilizzando la famiglia di caratteri: 'Helvetica Neue', Helvetica, Arial, sans-serif;

Quando uso PIL per rendere gli stessi caratteri Unicode che non rendono correttamente. Il carattere che ho caricato come parte dell'app non ha i caratteri Unicode necessari nel carattere.

Ecco le linee di codice Python pertinenti da quello che sto usando ora.

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

Come stai usando il carattere? Avete alcuni frammenti di codice? (Non ho molta familiarità con il PIL e sto cercando di fare qualcosa per guardarmi intorno, ad esempio: import os, PIL; print os.listdir (os.path.dirname (PIL .__ file __)) 'da https: // shell-27 .appspot.com) – bossylobster

+0

Dove vive tipicamente il file "FontIAmUsing.otf" ' IIUC, dovrebbe essere nella directory in cui stai chiamando il codice. Non potresti semplicemente includere il font con la tua applicazione e distribuire con il file? [Questo articolo] (http://www.leancrew.com/all-this/2008/11/truetype-fonts-for-the-python-imaging-library/) sembra riguardare dove vengono mantenuti i caratteri e come potresti includere li localmente. – bossylobster

+0

Giusto. Ho letto quell'articolo e faccio caricare il mio font. Spero che ci sia un font di sistema che "funzionerà" con caratteri unicode come fa sans-serif per le pagine web che usano caratteri unicode. Su un Mac, penso che sans-serif ricada su Helvetica. Non ho un font Helvetica con caratteri Unicode da caricare come parte dell'app. Spero ancora che Google possa avere alcuni font di sistema installati (Helvetica?) Che potrei utilizzare. – philipfc

risposta

4

Considerando che pil solo le navi con un font di default bitmap (brutti e probabilmente non contengono una gamma molto ampia di caratteri Unicode) e poiché è necessario fornire il percorso completo del file di carattere e non si può ottenere al di fuori di il tuo ambiente sandbox in GAE, è meglio caricare i tuoi font insieme alla tua applicazione. Se non si specifica un percorso, verrà esaminata la radice della propria applicazione Web. Sto usando GoogleAppEngineLauncher per OSX e quando lo si distribuisce carica tutti i file trovati (incluso il file .ttf che sto usando con ImageDraw).

La documentazione agli stati http://effbot.org/imagingbook/imagefont.htm: (Novità in 1.1.4) Carica un carattere predefinito "migliore di niente". Ho appena confermato che il carattere predefinito è disponibile su GAE.

+0

Ho deciso di caricare un font come suggerito. – philipfc