Отсечение при рендеринге кхмерского текста с использованием Pillow и libraqm

Я использую библиотеку Python Pillow для рисования кхмерского текста на изображении. Я использую libraqm, который упаковывает FreeType и HarfBuzz для поддержки сложной компоновки (layout_engine=ImageFont.LAYOUT_RAQM).

При визуализации некоторый текст смещается вправо и, следовательно, обрезается ограничительной рамкой. Сравните первый рендеринг ниже (с помощью подушки) со вторым (в MS Word). Я показал ограничивающую рамку красным цветом.

Кхмерский оказал подушку

Кхмерский, предоставленный MS Word

Код для воспроизведения эффекта отсечения:

#!/usr/bin/python3                                                              
# -*- coding: utf-8 -*-                                                         
from PIL import Image                                                           
from PIL import ImageFont                                                       
from PIL import ImageDraw                                                       

img = Image.new("RGB", (512, 512), "white")                                     
draw = ImageDraw.Draw(img)                                                      
font = ImageFont.truetype("Battambang-Regular.ttf", 60, layout_engine=ImageFont.LAYOUT_RAQM)                  
text = "លោកុប្បត្តិ"                                                                 
draw.text((0, 0), text, (0, 0, 0), font=font)                                   
img.save('out.png')

Я использую следующие версии на Ubuntu 14.04.3 LTS:

  • Python 3.4.3
  • Подушка 5.3.0.dev0
  • libfreetype6: 2.5.2-1ubuntu2.8
  • libharfbuzz0b: 0.9.27-1ubuntu1.1

0 ответов

Другие вопросы по тегам