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

 更新时间:2022年01月24日 11:40:09   作者:Johnny An  
大家好,本篇文章主要讲的是用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图片拼接内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Matplotlib绘图基础之地图绘制详解

    Matplotlib绘图基础之地图绘制详解

    如果分析的数据与地域相关,那么,把分析结果结合地图一起展示的话,会让可视化的效果得到极大的提升,下面就来讲讲如何利用Matplotlib一步步通过地图来展示分析结果吧
    2023-08-08
  • python遍历目录下所有文件的五种实现方法

    python遍历目录下所有文件的五种实现方法

    本文主要介绍了python遍历目录下所有文件的五种实现方法,包含os.walk(),os.scandir(),os.listdir(),glob模块和osqp模块这几种方法,具有一定的参考价值,感兴趣的可以了解一下
    2024-07-07
  • Python实战之异步获取中国天气信息

    Python实战之异步获取中国天气信息

    这篇文章主要介绍了如何利用Python爬虫异步获取天气信息,用的API是中国天气网。文中的示例代码讲解详细,感兴趣的小伙伴可以动手试一试
    2022-03-03
  • Python给Excel写入数据的四种方法小结

    Python给Excel写入数据的四种方法小结

    本文主要介绍了Python给Excel写入数据的四种方法小结,包含openpyxl库、xlsxwriter库、pandas库和win32com库,具有一定的参考价值,感兴趣的可以了解一下
    2025-02-02
  • Python+AutoIt实现界面工具开发过程详解

    Python+AutoIt实现界面工具开发过程详解

    这篇文章主要介绍了Python+AutoIt实现界面工具开发过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • Python获取字典中的值的八种方法

    Python获取字典中的值的八种方法

    Python 字典(dictionary)是一种可变容器模型,可以存储任意数量的任意类型的数据,字典通常用于存储键值对,每个元素由一个键(key)和一个值(value)组成,键和值之间用冒号分隔,本文给大家介绍了Python 字典取值的几种方法及其代码演示,需要的朋友可以参考下
    2024-07-07
  • python函数和python匿名函数lambda详解

    python函数和python匿名函数lambda详解

    这篇文章主要介绍了python函数和python匿名函数lambda,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-09-09
  • 使用python的pandas为你的股票绘制趋势图

    使用python的pandas为你的股票绘制趋势图

    这篇文章主要介绍了通过python为你的股票绘制趋势图,动手写个小程序, 把股票趋势每天早上发到邮箱里,用 python 的 pandas, matplotlib 写起来很容易, 几十行代码搞定。,需要的朋友可以参考下
    2019-06-06
  • 解决Django的request.POST获取不到内容的问题

    解决Django的request.POST获取不到内容的问题

    今天小编就为大家分享一篇解决Django的request.POST获取不到内容的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • python如何删除文件中重复的字段

    python如何删除文件中重复的字段

    这篇文章主要为大家详细介绍了python如何删除文件中重复的字段,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-07-07

最新评论