首页 > 编程语言 >Python 合并多张图片至一张图片

Python 合并多张图片至一张图片

时间:2023-01-10 11:14:34浏览次数:41  
标签:img Python Image 合并 gap result array 图片

PDF 有多页,一次性转成JPG 图片,JAVA 报内存溢出,
现改为,每一页存成一张图片,然后再将多张图片合成一张图片。

安装库

pip3 install Image -i https://pypi.tuna.tsinghua.edu.cn/simple

cv2.imread()不支持中文路径, 如果有中文读出来会是 None

# coding=utf-8
from PIL import Image
import cv2
import numpy as np


def merge(img_array, direction="horizontal", gap=0):
    img_array = [Image.fromarray(img) for img in img_array]
    w, h = img_array[0].size
    if direction == "horizontal":
        result = Image.new(img_array[0].mode, ((w + gap) * len(img_array) - gap, h))
        for i, img in enumerate(img_array):
            result.paste(img, box=((w + gap) * i, 0))
    elif direction == "vertical":
        result = Image.new(img_array[0].mode, (w, (h + gap) * len(img_array) - gap))
        for i, img in enumerate(img_array):
            result.paste(img, box=(0, (h + gap) * i))
    else:
        raise ValueError("The direction parameter has only two options: horizontal and vertical")
    return np.array(result)


if __name__ == '__main__':
    img_list = []
    for i in range(0, 10):
        img = cv2.imread("D:\\Users\\Pictures\\4\\%s.PNG" % (i + 1))
        img_list.append(img)
    img = merge(img_list, "vertical")
    cv2.imwrite("MergeImage.png", img)

源图
image
合并后的图
image

标签:img,Python,Image,合并,gap,result,array,图片
From: https://www.cnblogs.com/vipsoft/p/17039545.html

相关文章

  • python 读与写文本
    目录python读取文本:方法1:方法2:python写文本方法1:方法2:附加各种文本读写模式python读取文本:方法1:withopen(txt_path,"r")asfr:lines=fr.readlines()forl......
  • 用 Python 脚本实现电脑唤醒后自动拍照 截屏并发邮件通知
    背景背景是这样的,我的家里台式机常年休眠,并配置了WakeOnLan(WOL)方便远程唤醒并使用.但是我发现,偶尔台式机会被其他情况唤醒,这时候我并不知道,结果白白运......
  • python单例模式
    单例模式单例模式(SingletonPattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。当你希望在整个系统中,某个类只能出现一个实例时,单例对......
  • Python网络爬虫get方法出现乱码的解决的三种方案
    给大家祭出网络爬虫过程中三种中文乱码的处理方案,希望对大家的学习有所帮助。方案一将requests.get().text改为requests.get().content我们可以看到通过text()方法获取......
  • Python 中获取文件名
    Python获取文件名importosimportsys#①获取当前文件名os.path.basename(__file__)#②获取程序启动文件名os.path.basename(sys.argv[0])#__file__#获取当前文件的......
  • Python序列操作举例
    #序列操作举例#序列包括字符串、列表和元组importitertoolslisted=[1,2,3]listed*=2print(listed)#[1,2,3,1,2,3]print(id(listed))#20622639......
  • Python笔记(5)——if 语句一:条件测试(Python编程:从入门到实践)
    每条if语句的核心都是一个值为True或False的表达式。Python根据条件测试的值为True还是False来决定是否执行if语句中的代码。如果条件测试的值为True,Python就执行紧跟......
  • Python:常用Numpy介绍
    numpy.random.RandomState()函数1.函数用法功能:可以通过numpy工具包生成模拟数据集,使用RandomState获得随机数生成器。一般拿来对初始化模型的权重。1.np.random.norm......
  • python中的常见语法糖汇总(列表推导式、三元运算、lambda函数)
    python中的常见语法糖汇总(列表推导式、三元运算、lambda函数)语法糖计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。通常来说使用语法......
  • python中的几个特殊的高阶函数(map();filter();reduce(); enumerate();zip())
    python中的几个特殊的高阶函数(map();filter();reduce();enumerate();zip())map函数map函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每一个元素,并把结果......