通过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 - 批量处理(以批量修改图片像素为例)
3811 0
PS - 批量处理(以批量修改图片像素为例)
|
4月前
|
Java Python
Python 合并多张图片至一张图片
Python 合并多张图片至一张图片
40 0
|
5月前
|
编解码 定位技术
【工具分享】如何批量获取图片详细信息,如何把图片的属性信息包括文件路径、文件名、面积尺寸、创建日期、修改日期、水平垂直分辨率、文件大小等图片信息批量提取exel表格中
本文介绍了如何批量提取图片的属性数据到Excel,包括文件名、尺寸、面积、分辨率、GPS信息、创建和修改日期。适合需要处理大量图片信息的工作场景。支持批量导入图片,一键提取各项信息,并能直接导出为表格。
769 0
如何复制同一张图片,生成50张排列名称为1.jpg,2.jpg,3.jpg,4.jpg,顺序1-50张的图片,同一张图片生成50份,名字排序不一样怎样写
如何复制同一张图片,生成50张排列名称为1.jpg,2.jpg,3.jpg,4.jpg,顺序1-50张的图片,同一张图片生成50份,名字排序不一样怎样写
|
5月前
|
存储 编解码 算法
LabVIEW如何实现多张图拼接
LabVIEW如何实现多张图拼接
87 0
|
6月前
|
编解码
1066 图像过滤 (15 分)
1066 图像过滤 (15 分)
|
JavaScript
jQuery动态拼接多张图片并且获取每张图片名称
jQuery动态拼接多张图片并且获取每张图片名称
62 1
使用ffmpeg拼接两张图片
最近在工作中遇到了一个需求,就是需要将两张图片拼接在一起,作为一个封面图。如果只是临时拼接一张,我们可以只用photoshop之类的图片编辑工具,将两张图片拼接在一起。而我们的需要是需要实现自动化,由于之前使用过ffmpeg做过图片的操作,于是搜索了下,ffmpeg确实能实现两张图片的拼接,这里分享下相关操作的命令行。
172 0
ENVI_IDL:批量重投影Modis Swath产品并指定范围输出为Geotiff格式+解析
ENVI_IDL:批量重投影Modis Swath产品并指定范围输出为Geotiff格式+解析
216 0
R-rbind.fill|列数不一致的多个数据集“智能”合并,Get!
R-rbind.fill|列数不一致的多个数据集“智能”合并,Get!
154 0