#一, 創建圖片並在圖上添加文本
from PIL import Image,ImageDraw,ImageFont
a = '我們不一樣' # 定義文本
font = ImageFont.truetype('./font/platech.ttf',24) # 定義字體,這是本地自己下載的
img = Image.new('RGB',(300,300),(255,180,0)) # 新建長寬300像素,背景色為(255,180,0)的畫布對象
draw = ImageDraw.Draw(img) # 新建畫布繪畫對象
draw.text( (50,50), a,(255,0,0),font=font) # 在新建的對象 上坐標(50,50)處開始畫出紅色文本
# 左上角為畫布坐標(0,0)點
img.show()
img.save('./logs/img.jpeg')

圖片驗證碼代碼實現
# 推導步驟4(最終推導) 在圖片上寫字
img_obj = Image.new('RGB',(360,35),get_random())
# 將生成好的圖片對象交給ImageDraw
img_draw = ImageDraw.Draw(img_obj) # 生成了一個畫筆對象
# 字體樣式
img_font = ImageFont.truetype('static/font/111.ttf',30)
# 隨機驗證碼 大小寫英文加數字 五位 每一位都可以是大寫字母或小寫字母或數字
code = ''
for i in range(5):
upper_str = chr(random.randint(65,90))
lower_str = chr(random.randint(97,122))
random_int = str(random.randint(0,9))
# 隨機選取一個
tmp = random.choice([upper_str,lower_str,random_int])
# 朝圖片上寫一個
img_draw.text((i*60+60,0),tmp,get_random(),img_font)
# 存儲寫的字
code += tmp
print(code)
# 這個驗證碼后面其他視圖函數可能要用到 找個地方存儲一下 並且這個地方全局的視圖函數都能訪問
request.session['code'] = code
io_obj = BytesIO()
img_obj.save(io_obj,'png')
return HttpResponse(io_obj.getvalue())