溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

使用Python如何實(shí)現(xiàn)合成圖片

發(fā)布時(shí)間:2020-07-29 11:14:55 來(lái)源:億速云 閱讀:334 作者:小豬 欄目:開發(fā)技術(shù)

這篇文章主要為大家展示了使用Python如何實(shí)現(xiàn)合成圖片,內(nèi)容簡(jiǎn)而易懂,希望大家可以學(xué)習(xí)一下,學(xué)習(xí)完之后肯定會(huì)有收獲的,下面讓小編帶大家一起來(lái)看看吧。

1.業(yè)務(wù)需求背景

業(yè)務(wù)提供一張底層圖片1以及需要在底層圖片上添加的圖片2,兩張圖片大小不一致,將小圖2添加到底圖1中,并在其他的空白部分添加個(gè)性化的文本信息

2.圖片處理邏輯

在底層圖片上添加文本信息,圖片另存到一個(gè)新的路徑,命名為圖3
將圖3和圖2合并,處理位置信息,透明率等,將處理完成之后的圖片另存到新的路徑,命名為圖4

3.代碼處理部分

3.1 圖片上添加文本信息

from PIL import Image,ImageDraw,ImageFont
# 底圖添加字體文本

im = Image.open("./底圖.png").convert('RGBA')

# 查看原圖的大小
print(im.mode,im.size) 
# 生成與原圖大小完全一致的新圖片,設(shè)定為完全透明
txt=Image.new('RGBA', im.size, (0,0,0,0)) 
# 設(shè)置字體,字號(hào)
fnt=ImageFont.truetype(r"C:\Windows\Fonts\STXINWEI.TTF", 50)
d=ImageDraw.Draw(txt)
# 拼接需要在圖片上填寫的文本
name = "李敏"
date_today = "2020-04-28"
a = """
  親愛的{0}:
      叮。
      確認(rèn)收貨:專屬生日祝福!
      快樂屬于您,幸福屬于您!
      溫馨屬于您,好運(yùn)屬于您!
      工作在忙碌,本能照顧您!
                
                \r\r\r\rXX部門
                \r\r\r\r{1}          
""".format(name,date_today)
# 設(shè)置字體信息所在的位置,寫入的信息,顏色
d.text((txt.size[0]-950,txt.size[1]-1300),a,font=fnt,fill=(28,28,28,255))
# 保存新的圖片
out=Image.alpha_composite(im,txt)
out.save(r"NEW-1.png")

3.2 兩張大小不一致的圖片重疊

import cv2
import numpy as np
import matplotlib.pyplot as plt
import os
from PIL import Image,ImageDraw,ImageFont
# 讀取兩張圖片信息
os.chdir('E:\RPA\生日賀卡')
bear = cv2.imread('./baiyang+gou.png')
sky = cv2.imread('./NEW-1.png')
"""
bear 小圖
sky  大圖
"""
# 根據(jù)小圖像的大小,在大圖像上創(chuàng)建感興趣區(qū)域roi(放置位置任意取)
rows, cols = bear.shape[:2] #獲取bear的高度、寬度
roi = sky[0:rows, 0:cols]

dst = cv2.addWeighted(bear,1,roi,0,0) #圖像融合,設(shè)置透明度,大小等
add_img = sky.copy() #對(duì)原圖像進(jìn)行拷貝
add_img[800:rows+800, 75:cols+75] = dst # 將融合后的區(qū)域放進(jìn)原圖,可通過改數(shù)值修改位置
# 讀取融合之后的圖片數(shù)據(jù)(數(shù)據(jù)類型為dateframe對(duì)象)
ret = cv2.cvtColor(add_img,cv2.COLOR_BGR2RGB)

im = Image.fromarray(ret)
im.save("./完整圖.png")
print("圖片保存完成")

以上就是關(guān)于使用Python如何實(shí)現(xiàn)合成圖片的內(nèi)容,如果你們有學(xué)習(xí)到知識(shí)或者技能,可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI