2010-01-20 3 views

답변

1

아니요, PIL은 텍스트를 렌더링하는 데만 사용할 수 있지만 메트릭은 가져올 수 없습니다. 커닝 정보를 얻으려면 적절한 Windows API 함수 또는 FreeType 라이브러리 (안정적인 Python 바인딩이없는 라이브러리) 중 하나를 사용해야합니다.

+0

freetype에 내장 된 PIL이 아닙니까? – Geo

+0

예.하지만 메트릭 기능은 노출되지 않습니다. –

3

답은 Ignacio가 말한대로 아니오입니다.

이 답변의 심각한 부분이었습니다. 그리고 지금, 완전히 다른 뭔가를 (당신이 PIL을 사용하여 알 수 없기 때문에,하지 혼자 글꼴의 디자인 EM 크기 무엇인지)

당신은 에 근접 할 수 같은 것을 사용하여 커닝 값 :

import ImageFont 
SAMPLE_SIZE= 128 # should provide sufficient resolution for kerning values 

def get_a_kerning_value(font_descriptor, char1, char2): 
    """See if there is some kerning value defined for a pair of characters 
    Return the kerning value as an approximated percentage of the row height.""" 

    imagefont= ImageFont.truetype(font_descriptor, SAMPLE_SIZE) 

    width1= imagefont.getsize(char1)[0] 
    width2= imagefont.getsize(char2)[0] 
    widths, height= imagefont.getsize(char1 + char2) 

    return (widths - (width1 + width2))/float(height) 
관련 문제