Board logo

标题: [文本处理] 【已解决】求批处理怎么把当前子文件夹的图片合并成九宫格缩略图 [打印本页]

作者: 未知2022    时间: 2022-5-15 18:10     标题: 【已解决】求批处理怎么把当前子文件夹的图片合并成九宫格缩略图

本帖最后由 未知2022 于 2022-5-16 12:27 编辑

比如   我的F:\图片\     文件夹下面有

F:\图片\1\
F:\图片\2\

等子文件夹,

里面有大约9张图片,

求怎么批量合并成横3竖3的缩略图,求大神帮忙!!!!!!!!有软件可以做到,但好像不能批量,只能一个个合并太慢了
作者: Batcher    时间: 2022-5-15 20:53

回复 1# 未知2022


请参考Q-04把bat文件保存为ANSI编码:
https://mp.weixin.qq.com/s/Koje4FufWxWBs7ioDy_LJA
  1. @echo off
  2. REM 根据自己电脑实际情况设置ImageMagick的路径
  3. set "path=C:\Program Files\ImageMagick;%path%"
  4. REM 设置图片缩略图放在哪个文件夹
  5. set "DstFolder=NewThumbnail"
  6. if not exist "%DstFolder%" (
  7.     md "%DstFolder%"
  8. )
  9. for /f "delims=" %%i in ('dir /b /ad ^| findstr /v /x "%DstFolder%"') do (
  10.     echo 正在处理文件夹:%%i
  11.     montage.exe "%%i\*.jpg" -tile 3x3 -background none -resize 200x200 "%DstFolder%\%%~nxi.png"
  12. )
复制代码

作者: 未知2022    时间: 2022-5-15 21:13

回复 2# Batcher


    感谢老大回复,


已经设置为ansi了,还是没有任何反应,老大看看哪里出错了


ImageMagick已经安装了





REM 根据自己电脑实际情况设置ImageMagick的路径
set "path=C:\Program Files\ImageMagick"
REM F:\11\99
set "DstFolder=NewThumbnail"

if not exist "%DstFolder%" (
    md "%DstFolder%"
)
for /f "delims=" %%i in ('dir /b /ad ^| findstr /v /x "%DstFolder%"') do (
    echo 正在处理文件夹:%%i
    montage.exe "%%i\*.jpg" -tile 3x3 -background none -resize 200x200 "%DstFolder%\%%~nxi.png"
)
pause














报错信息






F:\11\99>REM 根据自己电脑实际情况设置ImageMagick的路径

F:\11\99>set "path=C:\Program Files\ImageMagick"

F:\11\99>REM F:\11\99

F:\11\99>set "DstFolder=NewThumbnail"

F:\11\99>if not exist "NewThumbnail" (md "NewThumbnail" )

F:\11\99>for /F "delims=" %i in ('dir /b /ad | findstr /v /x "NewThumbnail"') do (
echo 正在处理文件夹:%i
montage.exe "%i\*.jpg" -tile 3x3 -background none -resize 200x200 "NewThumbnail\%~nxi.png"
)
'findstr' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

F:\11\99>pause
请按任意键继续. . .
作者: 未知2022    时间: 2022-5-15 21:28

本帖最后由 未知2022 于 2022-5-15 21:29 编辑

回复 2# Batcher


    暂时找到了一个测试通过可以合并图片的批处理

ffmpeg -re -i 001.jpg -re -i 002.jpg -re -i 003.jpg -re -i 004.jpg -filter_complex "nullsrc=size=7680x4320 [base];[0:v] setpts=PTS-STARTPTS,scale=3840x2160 [upperleft];[1:v] setpts=PTS-STARTPTS, scale=3840x2160 [upperright];[2:v] setpts=PTS-STARTPTS, scale=3840x2160 [lowerleft];[3:v] setpts=PTS-STARTPTS, scale=3840x2160 [lowerright]; [base][upperleft] overlay=shortest=1 [tmp1]; [tmp1][upperright] overlay=shortest=1:x=3840 [tmp2]; [tmp2][lowerleft] overlay=shortest=1:y=2160 [tmp3]; [tmp3][lowerright] overlay=shortest=1:x=3840:y=2160" output.png

不过这个脚本缺点很大,首先只能一个个合并,不能子目录,其次需要固定文件名
作者: Batcher    时间: 2022-5-16 08:56

回复 3# 未知2022


2楼代码第3行你设置错了,请再试试根据自己的实际情况设置蓝色部分:
set "path=C:\Program Files\ImageMagick;%path%"
作者: 未知2022    时间: 2022-5-16 12:19

回复 5# Batcher


    现在可以顺利合并了,但是还是有很多没办法解决的。。

REM 根据自己电脑实际情况设置ImageMagick的路径
set "path=C:\Program Files\ImageMagick-7.1.0-Q16;%path%"
REM F:\11\9
set "DstFolder=NewThumbnail"

if not exist "%DstFolder%" (
    md "%DstFolder%"
)
for /f "delims=" %%i in ('dir /b /ad ^| findstr /v /x "%DstFolder%"') do (
    echo 正在处理文件夹:%%i
    montage.exe "%%i\*.jpg" -tile 3x3 -background none -resize 1920x1080 "%DstFolder%\%%~nxi.png"
)
pause




resize 1920x1080    这里无论怎么改,合并后的分辨率都不变,只有384X378    而且合成的图片间很多空白
作者: 未知2022    时间: 2022-5-16 12:25

回复 5# Batcher


    感谢老大,已经顺利解决分辨率的问题了!!!!!!!!!!!!自己修改了半天各种参数
作者: Batcher    时间: 2022-5-16 14:20

回复 7# 未知2022


    请把最终的代码发出来给大家分享一下吧
作者: 未知2022    时间: 2022-5-16 14:59

本帖最后由 未知2022 于 2022-5-24 02:41 编辑

REM 根据自己电脑实际情况设置ImageMagick的路径
set "path=C:\Program Files\ImageMagick-7.1.0-Q16;%path%"
REM F:\11\9
set "DstFolder=NewThumbnail"

if not exist "%DstFolder%" (
    md "%DstFolder%"
)
for /f "delims=" %%i in ('dir /b /ad ^| findstr /v /x "%DstFolder%"') do (
    echo 正在处理文件夹:%%i
    montage.exe "%%i\*.jpg" -tile 3x3 -background none -resize 640x480 "%DstFolder%\%%~nxi.png"
)
pause




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