通过gm来批量拼接图片,两张合并一张

简介: 刚好在做类似的事情,找了一部分绘本,想将绘本内的图片全部取出来合并。我是通过nodejs调用gm模块来实现的拼接,命令很简单。

刚好在做类似的事情,找了一部分绘本,想将绘本内的图片全部取出来合并。
我是通过nodejs调用gm模块来实现的拼接,命令很简单。

gm(leftFilePath).append(rightFilePath,true).write(collapseFilePath,(err)=>{});

依赖环境

两个安装好后,就可以执行代码了。对了,gm安装后要重启下。

将以下代码保存app.js 放在某个文件夹。

const gm = require('gm');
const fs = require('fs');
const path = require('path');

//假定目标目录为以下目录,且文件名称为1.jpg 2.jpg 3.jpg .且没有多级,只有一级,且没有其他多余文件....抱歉,要求有点多。
//如果文件名字不是这样的,那么需要对排序处做下处理。
const folderPath = 'D:\\nodejs\\toy\\ppt转pptx读取\\testcoll';
//该目录为合并后的文件存储目录
const targetFolder = 'D:\\nodejs\\toy\\ppt转pptx读取\\collapse';

function collapse (left,right,target) { 
  return new Promise((r, j) => {
    // gm(left).append(right).write(target, err => {//改行为上下拼接
    gm(left).append(right,true).write(target, err => {
      r();//忽略报错
    })
  })
}
(async function () { 
  let fileList = fs.readdirSync(folderPath);
  fileList.sort((a, b) => {
    return path.basename(a) - path.basename(b);
  })
  for (let index in fileList) { 
    index = parseInt(index, 10);
    if (index % 2 == 0) { 
      //以第一个文件名命名
      let targetFilePath = path.join(targetFolder, fileList[index]);
      let leftFile = path.join(folderPath, fileList[index]);
      let rightFile = path.join(folderPath, fileList[index + 1]);
      await collapse(leftFile,rightFile,targetFilePath);
    }
  }
  process.exit(0);
})();

保存代码到文件后,在文件空白处shift+右键打开命令行,安装模块:

npm install gm

然后执行:

node app

等待结果,查看是否正确。

image.png

image.png

相关文章
PS - 批量处理(以批量修改图片像素为例)
PS - 批量处理(以批量修改图片像素为例)
2781 0
PS - 批量处理(以批量修改图片像素为例)
|
3天前
|
前端开发
前端使用多张图片生成 Gif 效果(支持循环、不循环、完成回调)
前端使用多张图片生成 Gif 效果(支持循环、不循环、完成回调)
64 0
|
3天前
|
Python
图片拼接 --全景图合成
图片拼接 --全景图合成
|
3天前
|
存储 数据可视化 定位技术
Python用若干列的数据多条件筛选、去除Excel数据并批量绘制直方图
Python用若干列的数据多条件筛选、去除Excel数据并批量绘制直方图
|
10月前
|
索引
ENVI_IDL:批量拼接Modis Swath的逐日数据并输出为Geotiff格式
ENVI_IDL:批量拼接Modis Swath的逐日数据并输出为Geotiff格式
96 0
|
6月前
|
JavaScript
jQuery动态拼接多张图片并且获取每张图片名称
jQuery动态拼接多张图片并且获取每张图片名称
28 1
|
6月前
使用ffmpeg拼接两张图片
最近在工作中遇到了一个需求,就是需要将两张图片拼接在一起,作为一个封面图。如果只是临时拼接一张,我们可以只用photoshop之类的图片编辑工具,将两张图片拼接在一起。而我们的需要是需要实现自动化,由于之前使用过ffmpeg做过图片的操作,于是搜索了下,ffmpeg确实能实现两张图片的拼接,这里分享下相关操作的命令行。
66 0
|
10月前
ENVI_IDL:批量重投影Modis Swath产品并指定范围输出为Geotiff格式+解析
ENVI_IDL:批量重投影Modis Swath产品并指定范围输出为Geotiff格式+解析
137 0
|
10月前
|
存储 编解码
ENVI_IDL:批量处理Modis Swath数据的重投影并输出为Geotiff格式+详细解析
ENVI_IDL:批量处理Modis Swath数据的重投影并输出为Geotiff格式+详细解析
200 0
|
人工智能 文字识别 API
20行代码教你如何批量提取图片中文字
大家好,我是志斌~ 之前志斌在考研的时候遇到了一个问题,就是要将图片中的文字给提取出来,当时是J哥帮忙搞出来的,现在已经考完研了,也学会了提取方式,现在来给大家分享一下。
706 0
20行代码教你如何批量提取图片中文字