2015-08-23 2 views
1

Я создал код Python, который печатает текст на изображении, используя библиотеку PIL, код делает это отлично, но есть одна проблема ... Я использую белый изображение в формате PNG и синем тексте, текст - это электронное письмо, код отлично печатает почту на картинке, но это не совсем верно, что текст, т. е. не видел буквы отлично, как это было бы, например, если вы пишете в Windows Краска, в том, что краска является самым основным, но текст печатается PIL не точно равен распечатывает Paint для Windows, покраска окон лучшего качества, если мы видим такую ​​картину:Текст, напечатанный библиотекой PIL, не имеет лучшего определения

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

, мы видим, что вышеприведенный текст написан с помощью PIL, а текст ниже написан с помощью Paint и хотя очень незначительная разница, я хотел бы сделать его точно так же, как Windows Paint, и правда не то же самое. Раньше я был другим и тем же исходным кодом, и ни одного случая! пока я не воспользуюсь свойством качества со значением 100, но текст выше него показывает, что у вас не так много качества, как текст ниже, если вы посмотрите внимательно, вы увидите, что это так, как я говорю, качество - это не то же самое, качество текста PIL, используемого для печати текста, который имеет более низкое качество, чем краска.

Более того ... кажется, что это был еще один источник ..., который точно такой же, правда, мне не нравится, и мне интересно, есть ли способ печати текста лучше, или PIL лучше всего определить как Paint.

Это код, который я имею в настоящее время:

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

Вы можете попробовать изобразить изображение с кратким размером, которое вам нужно, а затем resize его с filter=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

большое спасибо за приветствие, очень любезно с вами :-) –

Смежные вопросы