天使漫步IT工作室

python使用pil在图片上添加中文乱码解决办法


今天搞一个pil上面刻字的程序,刚开始写数字的时候好好的,但是遇到汉字就乱码了。后来查了一个下手册发现,汉字需要特殊处理一下,其实就一行代码,示例如下:

# -*- coding: UTF-8 -*-
from PIL import Image, ImageDraw, ImageFont

def add_num(img,text):
    draw = ImageDraw.Draw(img)
    myfont = ImageFont.truetype('xingkai.ttf', size=150)
    fillcolor = "#000000"
    width, height = img.size
    draw.text((width/2-300, height*2/3 - 270), unicode(text,'UTF-8'), font=myfont,fill=fillcolor)
    img.save('result.png','png')
    return 0

if __name__ == '__main__':
    image = Image.open('zhengshu.png')
    add_num(image,"梦想成真")
    image.show()

我们可以看出,unicode(text,'UTF-8') 将汉字进行unicode编码,以便画笔可以识别。

当前页面是本站的「Baidu MIP」版。查看和发表评论请点击:完整版 »