5

Jakie czcionki są dostępne do użycia z PIL w App Engine?Jakie czcionki systemowe są dostępne dla PIL w Google App Engine?

Wiem, że mogę przesłać czcionkę jako część aplikacji, ale to, czego w zasadzie chcę, to system dostarczający sans-serif, który będzie działał ze znakami Unicode, czyli dobrze wyglądającą Helvetica (lub alternatywą). Serwery Google mogą już mieć zainstalowane pewne czcionki i chciałbym, żeby wgląd w nie był.

Chciałbym znaleźć czcionkę do użycia, która jest w stanie obsługiwać kodowanie Unicode, aby japońskie i inne znaki renderowały się poprawnie przy użyciu PIL.

Mam stronę, która prawidłowo renderuje znaki Unicode, używając rodziny czcionek: "Helvetica Neue", Helvetica, Arial, sans-serif;

Kiedy używam PIL do renderowania tych samych znaków Unicode, nie są renderowane poprawnie. Czcionka, którą przesłałem jako część aplikacji, nie ma wymaganych czcionek w kodzie Unicode.

Oto odpowiednie linie kodu Pythona z tego, czego teraz używam.

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

W jaki sposób używasz czcionki? Czy masz jakieś fragmenty kodu? (Nie jestem zbyt obeznany z PIL i próbuję coś zrobić, żeby się rozejrzeć, np. 'Import os, PIL, wydrukuj os.listdir (os.path.dirname (PIL .__ plik __))' z https: // shell-27 .appspot.com) – bossylobster

+0

Gdzie zazwyczaj znajduje się plik '' FontIAmUsing.otf "'? IIUC, powinien znajdować się w katalogu, do którego wywołujesz kod. Czy możesz nie tylko dołączyć czcionkę do swojej aplikacji i wdrożyć ją razem z plikiem? [Ten artykuł] (http://www.leancrew.com/all-this/2008/11/truetype-fonts-for-the-python-imaging-library/) wydaje się wyjaśniać, gdzie przechowywane są czcionki i w jaki sposób można je włączyć je lokalnie. – bossylobster

+0

Dobrze. Czytałem ten artykuł i przesyłam swoją czcionkę. Mam nadzieję, że istnieje czcionka systemowa, która "po prostu działa" ze znakami unicode, takimi jak sans-serif dla stron internetowych, które używają znaków Unicode. Na komputerze Mac, myślę, że sans-serif wraca do Helvetica. Nie mam czcionki Helvetica ze znakami unicode, które można przesłać jako część aplikacji. Nadal mam nadzieję, że Google może mieć niektóre zainstalowane czcionki systemowe (Helvetica?), Z których mógłbym skorzystać. – philipfc

Odpowiedz

4

Biorąc pod uwagę, że tylko PIL statki o czcionki domyślnej bitmapy (brzydkie i prawdopodobnie nie zawierające bardzo szeroki zakres znaków Unicode), a ponieważ musisz podać pełną ścieżkę dostępu do pliku czcionki i nie można dostać się poza Twoje środowisko piaskownicy w GAE, lepiej po prostu przesyłaj swoje czcionki wraz z aplikacją. Jeśli nie określisz ścieżki, przejrzysz katalog główny swojej aplikacji internetowej. Używam GoogleAppEngineLauncher dla OSX, a po jego wdrożeniu przesyłam wszystkie znalezione pliki (w tym .ttf używam z ImageDraw).

Dokumentacja pod numerem stwierdza: (Nowy w 1.1.4) Załaduj domyślną czcionkę "lepiej niż nic". Właśnie potwierdziłem, że domyślna czcionka jest dostępna na GAE.

+0

Postanowiłem przesłać czcionkę zgodnie z Twoimi sugestiami. – philipfc