当前位置:主页 > 软件编程 > Python代码 >

用python编写一个图片拼接工具

时间:2022-07-16 09:40:44 | 栏目: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

在这里插入图片描述

总结

您可能感兴趣的文章:

相关文章