рисовать текст на иврите с помощью модуля Image (python) - PullRequest
3 голосов
/ 31 января 2010

Я пытаюсь использовать модуль Image для создания растровых изображений с надписями на иврите. при печати из оболочки (в режиме ожидания) мне удалось распечатать на иврите, но при попытке нарисовать текст в растровом изображении он рисует некоторые буквы ascii.

это код:

import Image

import ImageDraw

a = "אריאל" #or any other hebrew string

im=Image.new('RGB',(200,200),(100,100,100)) #type file,size,Background color

d=ImageDraw.Draw(im)

d.text((0,0),a) #should draw the string

im.show()

любая помощь будет очень признательна.

Ответы [ 2 ]

1 голос
/ 31 января 2010

Этот сайт упоминает, что для рисования текста на китайском языке они должны были указать, что строка была в Unicode, поэтому вы должны сделать то же самое, например,

a = u"אריאל" #like this
a = unicode("אריאל", "UTF-8") #or like this

Они также указали шрифт,Есть ли подходящий для иврита?Например:

font = ImageFont.truetype('simsun.ttc',24)

, а затем укажите этот шрифт при рисовании текста, например:

d.text( (0,0), a, font=font)

Я думаю, что ваш код рисует строку ascii (а иврит - это faaaaar вне ascii)неправильный шрифт.

1 голос
/ 31 января 2010

Попробуйте a = u"אריאל".

В противном случае попробуйте PyCairo . Он имеет расширенную обработку типографики, которая может работать лучше.

...