我有以下PIL代码可在图像中打印文本

import os, sys
import PIL
from PIL import ImageFont
from PIL import Image
from PIL import ImageDraw

img = Image.open("one.jpg")
draw = ImageDraw.Draw(img)
font = ImageFont.truetype("/usr/share/fonts/truetype/msttcorefonts/Times_New_Roman.ttf",27)
draw.text((100, 100), "test test test", font=font)
img.save("out.jpg")


这适用于one.jpg文件。但是,在另一个名为two.jpg的测试文件上,它不会打印任何内容。从我的角度来看,两个文档之间的唯一区别是two.jpg的分辨率较低。文件one.jpg为200x200 dpi,two.jpg为60x60 dpi。

我怎样才能使draw.text在较低的分辨率下工作?

谢谢,

最佳答案

您需要为文本指定颜色:

import os
import sys
import ImageFont
import Image
import ImageDraw

img = Image.open("two.jpg")
draw = ImageDraw.Draw(img)
font = ImageFont.truetype("/usr/share/fonts/truetype/msttcorefonts/Times_New_Roman.ttf",27)
draw.text((100, 100), "test test test", font=font, fill = 'blue')
img.save("out.jpg")

关于python - PIL Draw.text和较低的分辨率,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8609857/

10-12 22:02