2016-02-14 69 views
3

我正在使用Pillow 3.1.1圖像庫和Python 3.5.1。枕頭中的字體混淆

我正在嘗試使用Pillow在圖像上繪製字體。但結果看起來絕對醜陋,不可接受。

第一個示例:看起來像字體不反鋸齒。但文檔中沒有任何字體混淆。我試圖做一些修改(例如設置fonttype),但是文本看起來仍然很糟糕。 1st example

第二個例子。有時角色恰好相互覆蓋。我不知道如何修復它。 2nd example

我很沮喪,我的經驗。是否有可能修復枕頭中的別名問題,或者我應該看看ImageMagick方面?

別名問題是我主要關心的問題,我不能使用這種方式呈現字體。

感謝您的關注!

代碼例如:

from PIL import Image, ImageDraw, ImageFont 

DEFAULT_OFFSET = (100, 160,) 


def draw_text(image, text): 
    base = Image.open(image).convert('RGBA') 

    txt_image = Image.new('RGBA', base.size, (255, 255, 255, 0)) 

    ttf = get_font() 
    fnt = ImageFont.truetype(ttf, 40) 
    d = ImageDraw.Draw(txt_image) 

    # just return some string in format 'blah-blah\nblah-blah' 
    multiline = generate_multiline(txt_image, text) 

    d.multiline_text(DEFAULT_OFFSET, multiline, align='left', font=fnt, fill=(40, 40, 40, 200)) 

    out = Image.alpha_composite(base, txt_image) 

    out.show() 
+0

PIL /枕頭不會進行消除鋸齒。要麼使用另一個軟件包,要麼使用[解決方法](http://stackoverflow.com/questions/5414639/python-imaging-library-text-rendering)。 – martineau

+0

@馬蒂奧哦,這很傷心。 Docs應該更直接地討論這個話題。 現在我將嘗試找到一些解決方法。我已經測試過ImageMagick,它的工作原理。感謝您的回答! – prokaktus

+0

解決方法是首先繪製文本3倍大小,然後使用縮放圖像抗鋸齒縮放 - 哪種枕頭支持 - 可能是最簡單的方法。 ImageMagick(以及其他更好的包)通常具有大量的依賴關係,並且可能需要很多工作並且難以安裝。他們也經常不支持最新版本的Python。 – martineau

回答