gpt4 book ai didi

batch-file - 使用 ImageMagick 批量拆分 JPEG

转载 作者:行者123 更新时间:2023-12-02 01:39:24 25 4
gpt4 key购买 nike

我使用以下命令在生成两个文件的文件夹中裁剪和拆分 jpg 名称 page000.jpg

convert page000.jpg -crop 2x1@ +repage -colorspace gray ^
+dither -colors 4 page000_%d.jpg

这两部分将命名为page000_0.jpg和page000_1.jpg

它运行良好,但我想重写此代码以处理目录中的每个 JPEG。

我为 DOS (.bat) 编写了这个批处理代码:

mkdir split
FOR %%f IN (*.jpg) DO xcopy %%f split\
cd split
FOR %%f IN (*.jpg) DO convert %%f -crop 2x1@ +repage -colorspace gray ^
+dither -colors 4 %%f_%d.jpg

但是,它无法工作。

最佳答案

您需要转义需要由转换解析器而非批处理解析器解释的百分号。

set "parameters=-crop 2x1@ +repage -colorspace gray +dither -colors 4"
FOR %%f IN (*.jpg) DO convert "%%f" %parameters% "%%~nf_%%d.jpg"
^^ the escaped percent sign

但是,由于 for 命令不使用静态文件列表(该列表是在 for 命令迭代时检索的),因此在此过程中生成的文件可以也被处理。你可以解决它

1 - 使用静态列表将您的 for 命令更改为 for/f 命令以首先使用 dir 检索文件列表命令

for /f "delims=" %%f in ('dir /b /a-d *.jpg') do .....

2 - 处理原始目录中的输入文件并将输出放在 split 目录中。这样,由于生成的文件没有放在正在处理的同一文件夹中,因此不会被检测到。

mkdir split
set "parameters=-crop 2x1@ +repage -colorspace gray +dither -colors 4"
FOR %%f IN (*.jpg) DO convert "%%f" %parameters% "split\%%~nf_%%d.jpg"

关于batch-file - 使用 ImageMagick 批量拆分 JPEG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29366566/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com