python PIL相關操作
阿新 • • 發佈:2018-05-12
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相關操作