![如何制作一个易于使用的脚本/文件来在 Windows 7 上查找和旋转水平图像?](https://linux22.com/image/1581465/%E5%A6%82%E4%BD%95%E5%88%B6%E4%BD%9C%E4%B8%80%E4%B8%AA%E6%98%93%E4%BA%8E%E4%BD%BF%E7%94%A8%E7%9A%84%E8%84%9A%E6%9C%AC%2F%E6%96%87%E4%BB%B6%E6%9D%A5%E5%9C%A8%20Windows%207%20%E4%B8%8A%E6%9F%A5%E6%89%BE%E5%92%8C%E6%97%8B%E8%BD%AC%E6%B0%B4%E5%B9%B3%E5%9B%BE%E5%83%8F%EF%BC%9F.png)
如果我有一个包含数百张图片的文件夹,其中一些图片的宽度大于高度,我希望能够轻松旋转宽图片,使所有内容都垂直。目前,我必须浏览缩略图并手动翻转所有水平图像。
我曾看到过与此相关的“shell 脚本”和“imagemagick”,但我不知道如何在 Windows 7 上使用它们。我怎样才能制作一个批处理文件之类的东西,我可以轻松地将它放在文件夹中,并让它为我完成所有工作?
答案1
处理 .jpg(旋转)会降低其质量,因此最好从不要覆盖开始。
来自批处理文件。不要覆盖原件。顺时针旋转 90 度:
@echo off
SETLOCAL ENABLEEXTENSIONS
md "path-to-parent-folder-with-double-quotes-if-there-is-a-space-in-the-path\rotated\"
for /f "tokens=*" %%x in ('dir /b "path-to-parent-folder-with-double-quotes-if-there-is-a-space-in-the-path\*.jpg"') do "path-to-imagemagick\convert.exe" "path-to-parent-folder-with-double-quotes-if-there-is-a-space-in-the-path\%%x" -rotate "90>" "path-to-parent-folder-with-double-quotes-if-there-is-a-space-in-the-path\rotated\%%x"
exit /b
例如:
@echo off
SETLOCAL ENABLEEXTENSIONS
md "%USERPROFILE%\Desktop\New folder\rotated\"
for /f "tokens=*" %%x in ('dir /b "%USERPROFILE%\desktop\new folder\*.jpg"') do "%ProgramFiles%\ImageMagick-7.0.7-Q16\convert.exe" "%USERPROFILE%\desktop\new folder\%%x" -rotate "90>" "%USERPROFILE%\desktop\new folder\rotated\%%x"
exit /b
来自批处理文件。覆盖原始文件。顺时针旋转 90 度:
@echo off
SETLOCAL ENABLEEXTENSIONS
for /f "tokens=*" %%x in ('dir /b "path-to-parent-folder-with-double-quotes-if-there-is-a-space-in-the-path\*.jpg"') do "path-to-imagemagick\convert.exe" "path-to-parent-folder-with-double-quotes-if-there-is-a-space-in-the-path\%%x" -rotate "90>" "path-to-parent-folder-with-double-quotes-if-there-is-a-space-in-the-path\%%x"
exit /b
例如:
@echo off
SETLOCAL ENABLEEXTENSIONS
for /f "tokens=*" %%x in ('dir /b "%USERPROFILE%\desktop\new folder\*.jpg"') do "%ProgramFiles%\ImageMagick-7.0.7-Q16\convert.exe" "%USERPROFILE%\desktop\new folder\%%x" -rotate "90>" "%USERPROFILE%\desktop\new folder\rotated\%%x"
exit /b
一个顺时针旋转 90 度并覆盖启动目录中每个 .jpg 的 Windows 快捷方式:
cmd /c for /f "tokens=*" %x in ('dir /b *.jpg') do "%ProgramFiles%\ImageMagick-7.0.7-Q16\convert.exe" "%x" -rotate "90>" "%x"
一个 Windows 快捷方式顺时针旋转 90 度并覆盖其启动目录和所有子目录中的每个 .jpg:
cmd /c for /f "tokens=*" %x in ('dir /b /s *.jpg') do "%ProgramFiles%\ImageMagick-7.0.7-Q16\convert.exe" "%x" -rotate "90>" "%x"
顺时针旋转 90 度
-rotate "90>"
逆时针旋转 90 度
-rotate "-90>"
对图像应用路径图像旋转(使用剪切操作)。使用 > 仅在图像宽度超过高度时旋转图像。< 仅在图像宽度小于高度时旋转图像。例如,如果您指定 -rotate "-90>" 并且图像大小为 480x640,则图像不会旋转。但是,如果图像为 640x480,则图像会旋转 -90 度。如果您使用 > 或 <,请将其括在引号中,以防止被误解为文件重定向。角落中的空三角形是旋转图像后留下的,将用背景颜色填充。以上来自这里。
另请参阅-歪曲操作符,特别是‘ScaleRotateTranslate’扭曲方法。
有关使用 imagemagick 命令行处理的更多信息,请参阅这里