Написать текст Unicode на изображении в Python Pillow?

Я пытаюсь написать текст на панджаби/гурмукхи на подушке Image Это не сработало полностью. Вот мой код:

from PIL import Image, ImageDraw, ImageFont

#configuration
font_size=36
width=500
height=100
back_ground_color=(255,255,255)
font_size=36
font_color=(0,0,0)

# Unicode For "ਸ੍ਰੀ" is "\u0a38\u0a4d\u0a30\u0a40"
unicode_text = u"ਸ੍ਰੀ"

im  =  Image.new ( "RGB", (width,height), back_ground_color )
draw  =  ImageDraw.Draw ( im )
unicode_font = ImageFont.truetype("raavi.ttf", font_size)
draw.text ( (10,10), unicode_text, font=unicode_font, fill=font_color )

im.save("text.jpg")

Но вывод такой: Выходное изображение

Также, когда мы используем print(u"ਸ੍ਰੀ") в терминале, он вернет тот же текст, что и на выходном изображении. Но когда мы копируем этот текст из терминала и вставляем его куда-нибудь еще, тогда вывод правильный ਸ੍ਰੀ.


person shivjeet bhullar    schedule 21.07.2020    source источник
comment
Возможно, вы не получаете шрифт, который вы просили?   -  person Mark Ransom    schedule 21.07.2020


Ответы (1)


Я нашел решение. Это потому, что Python визуализирует ਸ੍ਰੀ как четыре символа. Я создаю пакет и файл TTF для правильного отображения слов на изображении и в формате PDF.

Проверить: - pi7gurmukhi

Правильный вывод

person shivjeet bhullar    schedule 25.07.2020