用python编写一个图片拼接工具
作者:Johnny 发布时间:2023-09-01 18:31:52
标签: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
来源:https://blog.csdn.net/qq_41866202/article/details/122645045


猜你喜欢
- SQLServer中的批量注释批量注释Ctrl + (K,C):按住Ctrl键不放,然后依次按下K和C批量取消注释Ctrl + (K,U):
- 很实用的过滤重复数据的asp代码,函数如下:<%'**************************************
- 在python中Template可以将字符串的格式固定下来,重复利用。 同一套测试框架为了可以复用,所以我们可以将用例部分做参数化,然后运用
- 本文实例总结了javascript运动效果实现与用法。分享给大家供大家参考,具体如下:一、图片放大缩小效果:<!doctype htm
- 本文为大家分享了python实现外卖信息管理系统的具体代码,供大家参考,具体内容如下一、需求分析 需求分析包含如下:1、问题描述 以外卖信息
- 注:本文以Windos系统上Go SDK v1.17.5进行讲解1.go build命令2.手动案例2.1新建文件在桌面新建一个文件夹Hel
- 相信很多学编程的人都对Vlookup函数不陌生,一些在excel中不方便处理的大量数据,用Python就可以轻松解决。下面介绍openpyx
- 这个涉及到的知识点是django数据库查询问题,我们可以在view.py文件中操作blog_list = models.Blog.objec
- 优先级队列概述队列,是数据结构中实现先进先出策略的一种数据结构。而优先队列则是带有优先级的队列,即先按优先级分类,然后相同优先级的再 进行排
- 通常,当一个页面有太多信息要显示,而一页塞又不下所有信。为了请求速度、美观以及其他的各种理由,分页就会被我们请过来。让我们的用户可以选择是否
- 安装 Java 语言的软件开发工具包brew cask install java或者在Oracle官网 中选择 Mac 版本 jdk-8u1
- 最近,在项目开发过程中,碰到了数据库死锁问题,在解决问题的过程中,笔者对MySQL InnoDB引擎锁机制的理解逐步加深。案例如下:在使用S
- 从接触互联网开始,一直在关注每个网站页面浏览速度,不管大小国内外网站,而且每个用户的浏览时间都不一样,从而了解用户在浏览页面上时间体验尺度的
- github现在已经经常用了,但是经常遇到下面的问题比如:从一个项目A中fork了一个分支B,并且在分支B有了改动。过了几天后,项目A中的代
- osql 工具是一个 Microsoft Windows 32 命令提示符工具,您可以使用它运行 Transact-SQL 语句和脚本文件。
- 前言在编程过程中,我们经常会用到与时间和日期相关的各种需求,下面来介绍 Go 语言中有关时间的一些基本用法。时间类型time.Time 类型
- vue使用formData传递文件类型的数据1.需求 传递文件类型的数据和其
- 本文实例讲述了Python实现连接两个无规则列表后删除重复元素并升序排序的方法。分享给大家供大家参考,具体如下:# -*- coding:u
- shp2sqlserver用法简析 官方说明: shp2sqlserver is a command line tool for loadi
- 可以让我们将数据用表格的方式展示出来安装方式pip install PrettyTable测试是否安装成功使用方法与对比增加一条数据先简单的