用python編寫一個圖片拼接工具

前言

在這裡插入圖片描述

故事要從上面這張表情包開始講起,看到這張表情包之後,我突發奇想,覺得可以將室友上班摸魚的照片拼接起來,做成表情包叫他起床 激勵他學習!!!於是我馬上行動起來,用 pillow庫隨便寫寫僅供娛樂!大佬勿噴!

為瞭保護室友隱私,將照片用小藍代替!

在這裡插入圖片描述

代碼展示

這裡寫瞭兩種拼接方式,可以根據圖像比例自行調整。

又是不務正業的一天。。。

from PIL import Image
import matplotlib.pyplot as plt

def SpliceImage(img_1, img_2, save_img, mode=None):
    '''
    把兩張圖片左右拼接
    
    img_1   : 輸入圖片1(左)的路徑
    img_2   : 輸入圖片2(右)的路徑
    save_img: 保存圖片的路徑
    mode    : 默認為 None ,寬度保持不變,高度取最大值
              可設為'mean',寬度與高度均取兩張圖片的平均值
    '''
    # -----get width and height of the Images----- #
    img1 = Image.open(img_1)
    img2 = Image.open(img_2)
    w1, h1 = img1.size
    w2, h2 = img2.size
    print("原始圖片1大小:{} x {}" .format(w1,h1))
    print("原始圖片2大小:{} x {}" .format(w2,h2))
    
    # -----resize image with high-quality----- #
    if mode == 'mean':
        width = int((w1 + w2) / 2)
        height = int((h1 + h2) / 2)
        w1 = int(width/2)
        w2 = int(width/2)
    else:
        width = w1 + w2
        height = max(h1,h2)
        
    img1 = img1.resize((w1, height), Image.ANTIALIAS) 
    img2 = img2.resize((w2, height), Image.ANTIALIAS) 
    
    # -----create a new image-----#
    img = Image.new("RGB", (width, height), (0,0,0))
    img.paste(img1, (0,0))
    img.paste(img2, (w1,0))
    img.save(save_img)
    print("輸出圖片大小:{} x {}" .format(width,height))
    
    return img

if __name__ == '__main__':
    img_1 = r'.\img\sleeper.PNG'
    img_2 = r'.\img\dog.PNG'
    save_img = r'.\img\getup.jpg'
    try:
        img = SpliceImage(img_1, img_2, save_img, mode='mean')
    except:
        print('Image file error!')
    plt.imshow(img)

效果展示

針不戳!希望可以激勵室友努力學習,不再偷懶!hhhhhh

在這裡插入圖片描述

總結

到此這篇關於用python編寫一個圖片拼接工具的文章就介紹到這瞭,更多相關python圖片拼接內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: