Board logo

标题: [文件操作] [分享]批处理调用imagemagick把子文件夹下的图片拼接长图 [打印本页]

作者: Batcher    时间: 2021-11-6 22:04     标题: [分享]批处理调用imagemagick把子文件夹下的图片拼接长图

【问题描述】

用imagemagick怎么处理每个子文件夹下的图片单独拼接长图呢

"%montage%" "%%~i\*.jpg" -tile 1x2 -geometry +10+10 "%%~i\拼接-.jpg"
调整 1x2 来控制拼接的数量

怎样根据图片数量自动获取 1x2 这个值呢?
作者: Batcher    时间: 2021-11-6 22:04

【解决方案】
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. REM 处理该文件夹下(包括子文件夹)的图片
  4. set "SrcFolder=C:\Users\Administrator\Desktop\1"
  5. REM 根据自己电脑实际情况设置ImageMagick的路径
  6. set "path=C:\Program Files\ImageMagick;%path%"
  7. if not exist "%SrcFolder%" (
  8.     echo 找不到待处理的图片文件夹
  9.     pause
  10.     goto :eof
  11. )
  12. for /f "delims=" %%i in ('dir /b /s /ad "%SrcFolder%"') do (
  13.     set "n=0"
  14.     for /f "delims=" %%j in ('dir /b /a-d "%%i\*.jpg"') do (
  15.         set /a n+=1
  16.     )
  17.     echo 正在处理文件夹:%%i [包含!n!个jpg图片]
  18.     montage.exe "%%~i\*.jpg" -tile 1x!n! -geometry +10+10 "%%~i\拼接.jpg"
  19. )
  20. pause
复制代码

作者: Batcher    时间: 2022-2-11 17:32

批处理调用 ImageMagick 应用实例汇总

把子文件夹下的图片拼接长图
http://bbs.bathome.net/thread-60605-1-1.html

把指定文件夹下的jpg图片合并转换成pdf
http://bbs.bathome.net/thread-60630-1-1.html

批处理+ImageMagick把每张图片单独转换一个pdf
http://bbs.bathome.net/thread-66410-1-1.html

批处理从指定像素点位置剪裁多个图片合成一个PDF文件
http://bbs.bathome.net/thread-62067-1-1.html

批量加相框阴影,然后缩放到背景图,背景图使用图片的主色调
http://bbs.bathome.net/thread-60512-1-1.html#pid247543

裁剪扫描图片的空白边缘
http://bbs.bathome.net/thread-41894-1-1.html

用 ImageMagick + Ghostscript 转换 PDF 为图片
http://bbs.bathome.net/thread-34312-1-1.html

生成图片的缩略图
http://bbs.bathome.net/thread-2764-1-1.html

生成图片的九宫格缩略图
http://bbs.bathome.net/thread-62743-1-1.html

批处理批量剪裁目录下图片 从底部剪裁25个像素
http://bbs.bathome.net/thread-62466-1-1.html

图片的水平翻转和左右拼接
http://bbs.bathome.net/thread-64896-1-1.html#pid263482

只转换指定像素的图片
http://bbs.bathome.net/thread-65579-1-1.html#pid266428
作者: vvei    时间: 2024-10-17 03:00

本帖最后由 vvei 于 2024-10-17 03:02 编辑

回复 2# Batcher


新手,
不知道为什么无效

montage.exe "*.jpg" -tile 1x2 -geometry +10+10 "拼接.jpg"
就没问题
作者: aloha20200628    时间: 2024-10-18 21:45

本帖最后由 aloha20200628 于 2024-10-18 21:59 编辑

回复 4# vvei

以下代码存为 test.bat 运行,须从本坛第三方下载 montage.exe(7.0.3.7版 或 6.9.2.6版)http://bcn.bathome.net/s/tool/index.html?key=montage 置于 test.bat 同目录
备注》若采用从官网下载的最新版 montage.exe 会因其默认utf-8编码导致中文路径文件名可能出错...
  1. @echo off & (for /r /d %%d in (*) do if exist "%%d\*.jpg" for /f %%n in (
  2. 'dir /b/a-d "%%d\*.jpg"^|find /c /v "" '
  3. ) do montage.exe "%%d\*.jpg" -tile 1x%%n -geometry +10+10 "%%d\%%~nd@拼接.jpg") 2>nul
  4. pause&exit/b
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2