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()
PIL /枕頭不會進行消除鋸齒。要麼使用另一個軟件包,要麼使用[解決方法](http://stackoverflow.com/questions/5414639/python-imaging-library-text-rendering)。 – martineau
@馬蒂奧哦,這很傷心。 Docs應該更直接地討論這個話題。 現在我將嘗試找到一些解決方法。我已經測試過ImageMagick,它的工作原理。感謝您的回答! – prokaktus
解決方法是首先繪製文本3倍大小,然後使用縮放圖像抗鋸齒縮放 - 哪種枕頭支持 - 可能是最簡單的方法。 ImageMagick(以及其他更好的包)通常具有大量的依賴關係,並且可能需要很多工作並且難以安裝。他們也經常不支持最新版本的Python。 – martineau