PIL库打印的文本没有最佳定义

2024-04-28 05:36:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我创建了一个Python代码,它使用PIL库在一个图像上打印一个文本,代码使它非常完美,但是有一个问题。。。 我使用PNG格式的白色图像和蓝色文本,文本是一封电子邮件,代码将邮件完美地打印在图片中,但文本并不完全正确,例如,如果你在Windows中使用油漆,油漆是最基本的,然而,打印的文本PIL并不完全等于打印的窗户油漆,油漆窗户的质量更好,如果我们看到以下图片:

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

我们看到上面的文字是用PIL写的,而下面的文字是用油漆写的,虽然没有什么明显的区别,但我想让它完全像Windows油漆一样,道理不一样。我以前是不同的和相同的源代码和没有案例!直到我使用值为100的quality属性,但是上面的文本显示你没有下面的文本有那么多的质量,如果你仔细看,你会发现,正如我所说的,质量是不一样的,用于打印文本的质量比油漆的质量要低。你知道吗

更重要的是。。。这似乎是另一个来源。。。这是完全相同的,事实是我不喜欢,我想知道是否有任何方式,文字印刷品有更好的质量或像素是最好的定义为油漆。你知道吗

这是我目前拥有的代码:

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

谢谢你!!:-)


Tags: 代码图像文本comimgpilpngwindows
1条回答
网友
1楼 · 发布于 2024-04-28 05:36:42

您可以尝试以所需大小的倍数渲染图像,然后使用resize渲染图像。你知道吗

下面是一个使用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),"mimail@hotmail.com",(0,79,255), font=font)

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

img.save('texto.png')

相关问题 更多 >