5

파이썬에서 PIL을 사용하여 이미지에 UTF-8 문자를 인쇄하는 코드가 있습니다.이미지에 보조 텍스트 인쇄

내가 아랍어와 같은 쌍방향 스크립트에 합류를 들어, 동일한 코드 문자를 올바르게 연결에 실패 것으로 나타났습니다

사람이 방법을 추천 할 수 (초기 형태 만 선택 중간 및 최종 형태는 사용되지 않습니다 있습니다) 또는이 특정 문제를 해결하기위한 기술? 당신은 PIL을 계속 사용하려면

+0

난 그냥 자신의 웹 사이트에 잠깐 모습을 했어, 그리고 내 짐작으로는 도서관에 BIDI를 제대로 처리 할 능력이 없다는 것입니다. 광고를하는 경우 광고를하지 않습니다. –

+0

[this] (http://pypi.python.org/pypi/python-bidi/)에 도움이 되었습니까? –

답변

0

내가 한 것은 다음과 같습니다. Python + Wand (Python Lib) + arabic_retaper (Python Lib) + bidi.algorithme (Python Lib). 동일은 PIL 적용/베개, 당신은 사용해야하는 arabic_reshaperbidi.algorithm 및 생성 된 텍스트를 통과 draw.text((10, 25), artext, font=font)에 :

from wand.image import Image as wImage 
from wand.display import display as wdiplay 
from wand.drawing import Drawing 
from wand.color import Color 
import arabic_reshaper 
from bidi.algorithm import get_display 

reshaped_text = arabic_reshaper.reshape(u'لغةٌ عربيّة') 
artext = get_display(reshaped_text) 

fonts = ['C:\\Users\\PATH\\TO\\FONT\\Thabit-0.02\\DroidNaskh-Bold.ttf', 
     'C:\\Users\\PATH\\TO\\FONT\\Thabit-0.02\\Thabit.ttf', 
     'C:\\Users\\PATH\\TO\\FONT\\Thabit-0.02\\Thabit-Bold-Oblique.ttf', 
     'C:\\Users\\PATH\\TO\\FONT\\Thabit-0.02\\Thabit-Bold.ttf', 
     'C:\\Users\\PATH\\TO\\FONT\\Thabit-0.02\\Thabit-Oblique.ttf', 
     'C:\\Users\\PATH\\TO\\FONT\\Thabit-0.02\\majalla.ttf',   
     'C:\\Users\\PATH\\TO\\FONT\\Thabit-0.02\\majallab.ttf', 

     ] 
draw = Drawing() 
img = wImage(width=1200,height=(len(fonts)+2)*60,background=Color('#ffffff')) 
#draw.fill_color(Color('#000000')) 
draw.text_alignment = 'right'; 
draw.text_antialias = True 
draw.text_encoding = 'utf-8' 
#draw.text_interline_spacing = 1 
#draw.text_interword_spacing = 15.0 
draw.text_kerning = 0.0 
for i in range(len(fonts)): 
    font = fonts[i] 
    draw.font = font 
    draw.font_size = 40 
    draw.text(img.width/2, 40+(i*60),artext) 
    print draw.get_font_metrics(img,artext) 
    draw(img) 
draw.text(img.width/2, 40+((i+1)*60),u'ناصر test') 
draw(img) 
img.save(filename='C:\\PATH\\OUTPUT\\arabictest.png'.format(r)) 
wdiplay(img) 

Arabic typography in images

관련 문제