關於python PIL庫ImageDraw的Draw方法的問題
阿新 • • 發佈:2021-02-04
技術標籤:python學習歷程python
在做“給圖片加數字”的練習時,發現了這樣一個問題
from PIL import Image,ImageDraw,ImageFont
img = Image.open('C:\\Users\\24692\\Desktop\\2469.jpg','r')
draw = ImageDraw.Draw(img)
width,height = img.size
ttFont = ImageFont.truetype('C:/windows/fonts/Arial.ttf',10)
draw.text((width-40,0),"9",(0,255 ,0),font = ttFont)
img.save('qq_addNub.jpg')
img.show()
from PIL import Image,ImageDraw,ImageFont
img = Image.open('C:\\Users\\24692\\Desktop\\捕獲.PNG','r')
draw = ImageDraw.Draw(img)
ttFont = ImageFont.truetype('C:/windows/fonts/Arial.ttf',50)
draw.text((500,500),"hello",(0,255,0),font = ttFont)
img. save('result.PNG')
img.show()
上面兩段幾乎一樣的程式碼卻是截然不同的執行結果
第一段執行出現了"TypeError: function takes exactly 1 argument (3 given)"這個錯誤
第二段卻正常執行,併成功在圖片上加上了 “hello”
上網查詢一波後發現了這樣一篇文章https://blog.csdn.net/qq_27871973/article/details/84252488
這個情況感覺和我這個情況很類似,因為我第一段程式碼中讀取的圖片也是灰度的,第二段讀取的圖位深度是32。
於是我仿照文章中的方法,將第一段程式碼中的圖片轉換為RGB格式,結果執行成功。