PIL Draw.text与低分辨率

1 投票
1 回答
1751 浏览
提问于 2025-04-17 08:52

我有以下的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在低分辨率下也能正常工作呢?

谢谢,

1 个回答

2

你需要为文本指定一个颜色:

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")

撰写回答