天天看點

Python3使用PIL在圖檔中寫文字支援中文

話不多說,先看效果圖

Python3使用PIL在圖檔中寫文字支援中文

Python在圖檔中寫文字,需要使用PIL

PIL支援到python2.7

想用python3使用PIL需安裝pip3 install Pillow

中文支援:

檔案有中文運作時報錯:SyntaxError: Non-UTF-8 code starting with '\xb9' in file

修改檔案編碼類型為utf-8即可:在檔案上右鍵--propreties 中設定

Python3使用PIL在圖檔中寫文字支援中文

看代碼:

#功能:通過模闆圖檔 寫入文字到指定位置,并分别儲存成新的圖檔
#功能說明:根據"\n"換行
#環境:PyDev 6.5.0   Python3.5.2
#說明:PIL僅支援到python2.7,python3要使用PIL需安裝pip3 install Pillow
#python2與python3共存配置方法https://www.cnblogs.com/thunderLL/p/6643022.html

import PIL
from PIL import ImageFont
from PIL import Image
from PIL import ImageDraw

#初始化字元串
strs = "往後餘生,風雪是你,平淡是你,清貧也是你\n榮華是你,心底溫柔是你,目光所緻,也是你" #"包長榮,董亞靜;包良榮,王林香;李發甯,靳海燕;王秉安;魏耀鑫"
#模闆圖檔
imageFile = "F:\\family\\模闆圖檔.jpg"#"F:\\family\\請柬模闆.JPG"
#新檔案儲存路徑
file_save_dir = "F:\\family\\image\\"

#初始化參數
x = 300   #橫坐标(左右)
y = 20   #縱坐标(上下)
word_size = 50 #文字大小
word_css  = "C:\\Windows\\Fonts\\STXINGKA.TTF" #字型檔案   行楷
#STXINGKA.TTF華文行楷   simkai.ttf 楷體  SIMLI.TTF隸書  minijianhuangcao.ttf  迷你狂草    kongxincaoti.ttf空心草

#設定字型,如果沒有,也可以不設定
font = ImageFont.truetype(word_css,word_size)

#分割得到數組
im1=Image.open(imageFile) #打開圖檔
draw = ImageDraw.Draw(im1)
print(font.getsize(strs))
draw.text((x, y),strs,(255,255,0),font=font) #設定位置坐标 文字 顔色 字型
        
#定義檔案名 數字需要用str強轉
new_filename = file_save_dir  +strs.replace(",","-").replace("\n","-")+".jpg"
im1.save(new_filename) 
del draw #删除畫筆
im1.close()  #關閉圖檔