1. 程式人生 > >python PIL相關操作

python PIL相關操作

fill 轉換 加載 獲取 操作 self. paste span 設置

項目中需要用python生成二維碼,這裏記錄一下相關PIL相關操作。

RGBA問題:

  需要將圖片A粘貼到圖片B上,之前沒有註意透明度問題,A的背景是透明的,粘貼到B上後,A的周圍是黑的。後來才發現是PIL的Image模塊,調用open打開文件以後,需要convert轉換為‘RGBA’模式,R:red G:green B:blue A:Alpha 色彩空間 透明度,設置一下圖片的透明度即可。

圖片的粘貼,文字的添加需要調用ImageDraw模塊,首先打開背景圖

img = Image.open(./test.png).convert(RGBA)
drawImg = ImageDraw.Draw(img) 

圖片A粘貼到圖片B上

Image.resize()函數來調整圖片A的大小,然後用paste將A粘貼到B上,qr_bos為A在B上的坐標,(右上,左上,右下,左下)

drawImg.paste(img.resize((self.qr_box[2] - self.qr_box[0], self.qr_box[3] - self.qr_box[1])), self.qr_box)

在圖片B上添加文字

# 獲取圖片寬度,字體的高度
t_p_w_3, t_p_h_3 = (self.width, 23)
# 加載字體
t_3_font = ImageFont.truetype(msyh.ttf
, 23) # 獲取這段文字在圖片上的長寬 t_p_w_3_t, t_p_h_3_t = drawBack.textsize(self.content_3, t_3_font) #居中 drawBack.text(((t_p_w_3 - t_p_w_3_t) / 2, (t_p_h_3 - t_p_h_3_t) / 2), self.content_3,fill=#535256, font=t_3_font)

python PIL相關操作