【发布时间】:2020-09-09 04:41:51
【问题描述】:
编辑(最终)
我想通了!
第一步:在windows上安装image magick
第二步:在程序文件中找到magick.exe文件。在方便的地方保留一份副本。每次你有一个照片文件夹时,你都会复制它。
第 3 步:创建一个批处理文件(记事本另存为 .bat)(例如,magick.bat)并将此文件保存在与第 2 步相同的方便位置。每次您有照片文件夹。批处理代码如下:
@ECHO ON
FOR %%a in (*.jpg) DO magick convert %%a -quality 95%% %%~na_small.jpg
PAUSE
第4步:每次要压缩里面的照片时,将.bat和magick.exe都复制到照片的文件夹中,然后双击.bat批处理文件并让它运行!您的压缩照片将开始出现!
[文件夹外观示例][1]
我真的不擅长这个。我只想创建一个 .bat 文件,将此文件复制并粘贴到我的照片所在的文件夹中,然后双击此文件以便我可以压缩我的 jpgs
但我的回声打开,我可以看到它一直在循环第一个 jpg 然后它停止。之后什么也没有发生。也没有创建或覆盖新文件。
有人能指出我要写的正确代码吗?
@ECHO ON
pause
for %%A In (*.jpg) do (magick -i "%%A" -quality 85 "%%~nAx.jpg")
PAUSE
谢谢
编辑:这就是 Echo ON 的样子
I:\Photos\unsorted\testing>pause
Press any key to continue . . .
I:\Photos\unsorted\testing>for %A In (*.jpg) do (magick -i "%A" -quality 85 "%~nAx.jpg" )
I:\Photos\unsorted\testing>(magick -i "XH1F0270.JPG" -quality 85 "XH1F0270x.jpg" )
I:\Photos\unsorted\testing>pause
Press any key to continue . . .```
[1]: https://i.stack.imgur.com/KhhEx.png
【问题讨论】:
-
“然后它停止”是什么意思?是否到达第二个
pause?复制控制台的完整输出并将其添加到您的问题中。 -
为什么不直接使用 ImageMagick mogrify 来做到这一点。它无需编写脚本循环即可处理整个文件夹的文件。见imagemagick.org/Usage/basics/#mogrify。
-
@paddy 编辑了我的帖子以包含控制台的消息。
-
@fmw42 我能否澄清一下,要使用 mogrify,我必须打开 cmd,然后 cd 一直到我的照片文件夹并在那里使用 mogrify 功能?如果是这样,我真的希望得到一些帮助来修复 .bat 文件,否则我必须继续使用 cmd 来获取我的照片
-
您可以将路径放入 mogrify,这样您就不必 cd 到图像目录。您还可以使用 -path 选项指定输出目录。例如在 unix 语法中:
mogrify -path desktop/test2 -format png desktop/test1/*.jpg将处理我桌面上我的 test1 目录中的所有 jpg 文件,并将结果作为 pngs 放入我桌面上的 test2 文件夹中。我正在从我的主目录运行那个 mogrify 命令。抱歉,我在 Mac 上做 bash shell 脚本。我不知道 Windows .bat 脚本的语法。但是我的 mogrify 命令对于 .bat 是相同的,除了文件路径使用 \ 而不是 /
标签: imagemagick jpeg