Python实现将一张图片放到另一张图片指定的位置上并合成一张图
生活随笔
收集整理的這篇文章主要介紹了
Python实现将一张图片放到另一张图片指定的位置上并合成一张图
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Python實現將一張圖片放到另一張圖片指定的位置上并合成一張圖
# -*- coding: utf-8 -*- # by:Apsinc # time:2019年12月10日 #Python實現將一張圖片放到另一張圖片指定的位置上并合成一張圖 from PIL import Imagepath = "C:/Users/Administrator/Desktop/QRCode/background.jpg"#母圖詳細文件名以及路徑 img = Image.open(path) # img = qr.make_image(fill_color="#555555", back_color="Red") img = img.convert("RGBA") # CMYK/RGBA 轉換顏色格式(CMYK用于打印機的色彩,RGBA用于顯示器的色彩) # 添加子圖 icon = Image.open("C:/Users/Administrator/Desktop/QRCode/zitu.png")#子圖文件名 # 獲取圖片的寬高 img_w, img_h = img.size#獲取被放圖片的大小(母圖) icon_w,icon_h=icon.size#獲取小圖的大小(子圖) factor = 6 size_w = int(img_w / factor) size_h = int(img_h / factor) icon_w, icon_h = icon.size #防止子圖尺寸大于母圖 if icon_w > size_w:icon_w = size_w if icon_h > size_h:icon_h = size_h # # 重新設置子圖的尺寸 # icon = icon.resize((icon_w, icon_h), Image.ANTIALIAS) w = int((img_w - icon_w) / 2) h = int((img_h - icon_h) / 2) # 粘貼圖片 img.paste(icon, (w, h), mask=None) # 保存圖片 img.save("C:/Users/Administrator/Desktop/QRCode/c.png")#合成后的圖片路徑以及文件名為了方便下次調用最好封裝成為模塊
from PIL import Imagedef Picture_Synthesis(mother_img,son_img,save_img,coordinate=None):""":param mother_img: 母圖:param son_img: 子圖:param save_img: 保存圖片名:param coordinate: 子圖在母圖的坐標:return:"""#將圖片賦值,方便后面的代碼調用M_Img = Image.open(mother_img)S_Img = Image.open(son_img)factor = 1#子圖縮小的倍數1代表不變,2就代表原來的一半#給圖片指定色彩顯示格式M_Img = M_Img.convert("RGBA") # CMYK/RGBA 轉換顏色格式(CMYK用于打印機的色彩,RGBA用于顯示器的色彩)# 獲取圖片的尺寸M_Img_w, M_Img_h = M_Img.size # 獲取被放圖片的大小(母圖)print("母圖尺寸:",M_Img.size)S_Img_w, S_Img_h = S_Img.size # 獲取小圖的大小(子圖)print("子圖尺寸:",S_Img.size)size_w = int(S_Img_w / factor)size_h = int(S_Img_h / factor)# 防止子圖尺寸大于母圖if S_Img_w > size_w:S_Img_w = size_wif S_Img_h > size_h:S_Img_h = size_h# # 重新設置子圖的尺寸# icon = S_Img.resize((S_Img_w, S_Img_h), Image.ANTIALIAS)icon = S_Img.resize((S_Img_w, S_Img_h), Image.ANTIALIAS)w = int((M_Img_w - S_Img_w) / 2)h = int((M_Img_h - S_Img_h) / 2)try:if coordinate==None or coordinate=="":coordinate=(w, h)# 粘貼子圖到母圖的指定坐標(當前居中)M_Img.paste(icon, coordinate, mask=None)else:print("已經指定坐標")# 粘貼子圖到母圖的指定坐標(當前居中)M_Img.paste(icon, coordinate, mask=None)except:print("坐標指定出錯 ")# 保存圖片M_Img.save(save_img)調用方法
Picture_Synthesis(mother_img="C:/Users/Administrator/Desktop/QRCode/b.jpg",son_img="C:/Users/Administrator/Desktop/QRCode/y.png",save_img="C:/Users/Administrator/Desktop/QRCode/newimg.png",coordinate=None#如果為None表示直接將子圖在母圖中居中也可以直接賦值坐標# coordinate=(50,50))母圖
子圖
最終效果
好的,這就不必過多的介紹代碼了,全在注釋中,有問題歡迎留言!有錯誤也歡迎您慷慨指正!
總結
以上是生活随笔為你收集整理的Python实现将一张图片放到另一张图片指定的位置上并合成一张图的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 无状态编程, lambda 表达式中传入
- 下一篇: maven生成webapp