PDF 有多页,一次性转成JPG 图片,JAVA 报内存溢出,

现改为,每一页存成一张图片,然后再将多张图片合成一张图片。

安装库

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

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

如报:Expected Ptrcv::UMat for argument 'img' 内存溢出,图片太多或太大

# 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)

源图



合并后的图

Python 合并多张图片至一张图片的更多相关文章

  1. python合并多个txt文件

    python合并多个txt文件 #合并一个文件夹下的多个txt文件 #coding=utf-8 import os #获取目标文件夹的路径 filedir = os.getcwd()+'\\数据' # ...

  2. 使用CSS3中Canvas 实现两张图片合成一张图片【常用于合成二维码图片】

    CSS3 Canvas 实现两张图片合成一张图片 需求 需求:在项目中遇到将一张固定图片和一张二维码图片合成一张新图片,并且用户能够将图片保存下载到本地. 思路:使用 CSS3 中的 Canvas 将 ...

  3. python合并多个excel

    前言 1.工作中,经常需要合并多个Excel文件.如果文件数量比较多,则工作量大,易出错,此时,可以使用Python来快速的完成合并. 2.使用方法:将需要合并的多个Excel文件放到同一个文件夹下, ...

  4. Python合并多个Excel数据

    安装模块 1.找到对应的模块  http://www.python-excel.org/ 2.用pip install 安装 pip install xlrdpip install XlsxWrite ...

  5. iOS把两张图片合成一张图片

    0x00 步骤 先读取两张图片把创建出CGImageRef 创建上下文画布 把图片依次画在画布指定位置上 从上下文中获得合并后的图片 关闭上下文 释放内存 0x01 代码实现 - (void)comp ...

  6. c# 多张图片合成一张图片

    using System; using System.Collections.Generic; using System.Drawing; using System.IO; using System. ...

  7. 利用python合并两个文件

    1格式如下 在做利用zabbix的api来批量添加主机的时候,需要处理ip和hostname,在借用别人写的py程序的基础上,自己有改装了以下脚本,为自己使用.需要时ip和hostname为一个统一格 ...

  8. Python合并两个numpy矩阵

    numpy是Python用来科学计算的一个非常重要的库,numpy主要用来处理一些矩阵对象,可以说numpy让Python有了Matlab的味道. 实际的应用中,矩阵的合并是一个经常发生的操作,如何利 ...

  9. python合并图片

    因项目需求需要将图片合并故写了一个python脚本,在这里放个笔记 #!/usr/bin/env python #coding=utf-8 import Image import os import ...

  10. 用python合并N个不同字符集编码的sql文件的实践

    背景:我有一项工作任务是将svn某文件夹日常更新的sql文件(归类到日期命名的文件夹中)拿到数据库中运行. 一開始,我是先把sql文件update下来,用notepad++打开,拷贝每个文本的sql语 ...

随机推荐

  1. Azure Data Factory(十)Data Flow 组件详解

    一,引言 随着大数据技术的不断发展,数据处理和分析变得越来越重要.为了满足企业对数据处理的需求,微软推出了 Azure Data Factory (ADF),它是一个云端的数据集成服务,用于创建.安排 ...

  2. Java SPI机制学习之开发实例

    原创/朱季谦 在该文章正式开始前,先对 Java SPI是什么做一个简单的介绍. SPI,是Service Provider Interface的缩写,即服务提供者接口,它允许开发人员定义一组接口,并 ...

  3. Soc的Bring Up流程

    1.Bring Up流程 SOC (System on a Chip) bring-up是一个复杂的过程,涉及到硬件.固件和软件的集成和验证,以下是一个基于BROM,SPL,UBOOT和Linux的启 ...

  4. Lyndon 分解

    介绍 [模板]Lyndon 分解 #include<cstdio> #include<cstring> char s[5000005]; int main(){ scanf(& ...

  5. 2021年前端面试题——JS

    目录: DOM事件流有那些阶段? 解释事件冒泡以及如何阻止它? 事件委派/事件委托是什么? 如何理解 JS 中的this关键字? 更改this指向的方法有那些? apply.call.bind 区别? ...

  6. STM32外设:最小系统、低功耗模式

    最小系统 启动引脚 BOOT0.BOOT1:用于设置系统的启动方式 下载引脚 JTAG的IO:JTMS.JTCK.JTDI.JTDO.NJTRST SW的IO:SWDIO.SWCLK 硬件设计 NUC ...

  7. 【eBPF-01】初见:基于 BCC 框架的第一个 eBPF 程序

    闲言少叙,本文记录了如何零基础通过 BCC 框架,入门 eBPF 程序的开发,并实现几个简易的程序. 有关 eBPF 的介绍,网络上的资料有很多,本文暂且先不深入讨论,后面会再出一篇文章详细分析其原理 ...

  8. 安卓app填写域名和端口后点击保存没有反应(填错注册信息)

    解决方法:域名填写错误导致(仔细检查填写的域名和端口是否正常,注册的信息是否与填写的一致) ​ 域名是:3q9l302537.wicp.vip 中间有个字母 l 不是数字 1 填写成了:3q91302 ...

  9. 踩坑ffmpeg录制的mp4无法在浏览器上播放

    前言 使用ffmpeg编译好的程序在电脑上进行音视频转换,可以参考这篇:<windows电脑FFmpeg安装教程手把手详解_windows安装ffmpeg>,而我们要做的是在游戏引擎中集成 ...

  10. Redis配置模式及各自优缺点

    大家好,我是闲者,今天简单聊下redis部署模式.Redis支持多种不同的数据结构和模式,以满足不同的使用场景.以下是一些常见的Redis配置和模式示例以及详解.原文地址:Redis配置模式及各自优缺 ...