1. 程式人生 > 其它 >關於python PIL庫ImageDraw的Draw方法的問題

關於python PIL庫ImageDraw的Draw方法的問題

技術標籤: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格式,結果執行成功。

但是背後的原理還沒有求證過。先在這裡記錄一下這個問題,待有空求證。