2015-08-23 88 views
1

我創建的打印使用PIL庫的圖像上的文本,該代碼使得它完美的一個Python代碼的最好的定義,但有一個問題... 我用白色PNG格式和藍色的文本圖像,文本電子郵件,代碼完美打印郵件中的圖片,但它是不完全正確的文本,也就是沒有看到字母完美,因爲它會例如,如果您寫入Windows油漆,在於塗料是最基本的,但到打印Windows畫圖印刷PIL文字不完全等同,油漆窗戶質量更好,如果我們看到這樣的畫面:由PIL庫打印的文本沒有

http://www.subeimagenes.com/img/texto-1414832.png

我們看到上面的文字寫有PIL,而文字下方寫有油漆,而很少明顯的區別,我想使它酷似Windows畫圖,真理是不一樣的..。我曾經是不同的,相同的源代碼,沒有案例!直到我用的是優質的物業與100的值,但它上面顯示你沒有儘可能多的質量爲下面的文本的文本,如果你仔細看,你會發現它是我說的,質量是不是同樣,用於打印質量低於油漆質量的PIL文本的質量。

更重要的是,它似乎曾經是另一個來源...這是完全一樣的,事實是我不喜歡,我不知道是否有任何方式,文本打印有更好的質量或PIL最好定義爲油漆。

這是我當前的代碼:

imagen = Image.open("img.png") 
img = imagen.resize((175, 60)) 
draw = ImageDraw.Draw(img) 
font = ImageFont.truetype("Verdana.ttf", 15) 
draw.text((10, 4),"[email protected]",(0,79,255),font=font) 
img.save('texto.png', format='PNG', subsampling=0, quality=100) 

謝謝!! :-)

回答

0

您可以嘗試以您需要的尺寸的倍數渲染圖像,然後resizefilter=Image.ANTIALIAS

下面是使用2的大小調整因素的例子:

from PIL import Image 
from PIL import ImageDraw 
from PIL import ImageFont 

imageSize = (400,100) # 2x size of the image you originally wanted. 

img = Image.new("RGB", imageSize, "white") 
draw = ImageDraw.Draw(img) 
font = ImageFont.truetype("Verdana.ttf", 15 * 2) # 2x of the font you wanted. 
draw.text((10, 4),"[email protected]",(0,79,255), font=font) 

# downsample with Antialias by 2 
img.thumbnail((imageSize[0]/2, imageSize[1]/2), Image.ANTIALIAS) 

img.save('texto.png') 
+0

您好:-)非常感謝你的幫助,它一直非常好你的代碼,哥哥謝謝你給我這個偉大的手。 我再次發送你一個擁抱和感謝:-) –

+0

@Príncipe_Azul歡迎您。 :-) – Sait

+0

非常感謝你的歡迎,非常友善:-) –