一开始出现错误如下:
原因为0000.JPG前应该是\而不是.修改后,运行以下代码,报错:
查阅资料后,加上了字体文件的路径
运行以下代码后,仍有相同的报错
from PIL import Image, ImageDraw, ImageFont
im=Image.open("E:\\WNCG\\day day up\\0000.JPG")
draw=ImageDraw.Draw(im)
newfont=ImageFont.truetype("C:\\WINDOWS\\Fonts\\HYXiXingKaiW.ttf", 50)
draw.text((100,100),u'you are so good!',fill=(0,0,0),font=newfont)
im.show()
im.save('E:\\WNCG\\day day up\\target.jpg')
汉仪细行楷字体是我自己在网上下载安装的,发现虽然在C:\WINDOWS\Fonts中能找到该字体,但查看属性它的路径为:C:\Users\ASUS\AppData\Local\Microsoft\Windows\Fonts
,在将字体路径修改为C:\Users\ASUS\AppData\Local\Microsoft\Windows\Fonts\HYXiXingKaiW.ttf
后代码成功运行,在图片中打印出我喜欢的汉仪细行楷字体。
在运行以下代码后,打印成功:
from PIL import Image, ImageDraw, ImageFont
im=Image.open("E:\WNCG\day day up\0000.JPG")
draw=ImageDraw.Draw(im)
newfont=ImageFont.truetype("C:\WINDOWS\Fonts\SIMYOU.TTF", 100)
draw.text((1000,1000),u'you are so good!',fill=(0,0,0),font=newfont)
im.show()
im.save('E:\WNCG\day day up\target.jpg')
将代码改成这样,仍旧可以更换字体颜色
from PIL import Image, ImageDraw, ImageFont
im=Image.open("E:\\WNCG\\day day up\\0000.JPG")
draw=ImageDraw.Draw(im)
newfont=ImageFont.truetype("C:\\WINDOWS\\Fonts\\SIMYOU.TTF", 100)
draw.text((1000,1000),u'you are so good!',fill="red",font=newfont)
im.show()
im.save('E:\\WNCG\\day day up\\target.jpg')
运行以下代码,没有找到目的文件
from PIL import Image, ImageDraw, ImageFont
def add_text(img, str):
im = Image.open(img)
tfont = ImageFont.truetype("C:\\WINDOWS\\Fonts\\SIMYOU.TTF",500)
draw = ImageDraw.Draw(im)
# 设置 文字位置 文字内容 颜色 文字大小
draw.text((1000,1000), str, fill=(0,0,0), font=tfont)
im.save(img, 'jpeg')
if __name__ == '__main__':
add_text('E:\\WNCG\\day day up\\0000.JPG', 'you are so good')
运行以下代码,文件中中成功找到目的文件
from PIL import Image, ImageDraw, ImageFont
def add_text(img, str):
im = Image.open(img)
tfont = ImageFont.truetype("C:\\WINDOWS\\Fonts\\SIMYOU.TTF",500)
draw = ImageDraw.Draw(im)
# 设置 文字位置 文字内容 颜色 文字大小
draw.text((1000,1000), str, fill=(0,0,0), font=tfont)
im.save('E:\\WNCG\\day day up\\target.jpg')
if __name__ == '__main__':
add_text('E:\\WNCG\\day day up\\0000.JPG', 'you are so good')
后来尝试输入中文,也可以成功运行。
尝试换了个字体,字体是英文字体,所以中文就显示不出来,将字体换为隶书 常规,汉字正常显示。