gpt4 book ai didi

image-processing - ImageMagick 缩略图 Windows 上的批处理

转载 作者:行者123 更新时间:2023-12-04 08:30:43 27 4
gpt4 key购买 nike

我正在使用 ImageMagick 创建照片的缩略图。

我正在使用 Windows 操作系统。

我的源文件包含在许多子文件夹中。

我希望通过保存到不同驱动器上的目标文件夹来制作源文件的缩略图,同时保留相同的文件夹结构并修改原始文件名。

目标文件名与源文件名相同,但修改了 1 个字符:

来源示例:

c:\images\1\1L0000021.jpg
c:\images\1\1L000561.jpg
c:\images\2\234L0000032.jpg
c:\images\3\31214L000001.jpg

目标驱动器:

d:\images\1\1M0000021.jpg
d:\images\1\1M000561.jpg
d:\images\2\234M0000032.jpg
d:\images\3\31214M000001.jpg

注意:只需要将一个字母从L改成M

源文件名模式总是:*l*.jpg

这是我要运行以进行图像处理的命令:

convert -thumbnail 200x220^^ -gravity center -extent 200x200 -quality 80 c:\images\*.jpeg d:\images\output.jpeg

上述命令从源文件夹创建所需的缩略图并保存到目标文件夹,但输出文件名不正确并且它不遍历子文件夹。

问题:

1) 如何遍历每个文件夹和子文件夹,然后输出到目标驱动器上完全相同的结构(如果文件夹不存在则创建)

2) 如何修改输出文件名,使 *l*.jpeg 变成 *m*.jpeg

最佳答案

更新

这是我的最终代码,以防将来对任何人有帮助:

::You must first install ImageMagick

::This job converts large photos into 200x200 thumbnails and saves the new files to the specified destination.

@echo off
setlocal enabledelayedexpansion

SET "@SOURCE=C:\Test\photos\"
SET "@DEST=C:\dest"

REM Replicate source folder structure to destination:

for /r %@SOURCE% %%D in (.) do (

echo Creating folder: %@DEST%%%~pnxD
@md "%@DEST%%%~pnxD"

)


REM Select images from source using wildcard:

for /r %@SOURCE% %%F in (*l*.jpeg) do (

REM Modify file name (i'm replacing 'l' for 'm')

set "fname=%%~nF"
set "fname=!fname:l=m!"


REM Convert source image to thumbnail and save to destination:

REM echo Source: %%F
echo Saving: %@DEST%%%~pnxF

@convert -thumbnail 200x220^^^^ -gravity center -extent 200x200 -quality 80 "%%F" "%@DEST%%%~pF!fname!%%~xF"

)

关于image-processing - ImageMagick 缩略图 Windows 上的批处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17807765/

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