Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 用于调整图像大小的批处理脚本_Windows_Shell_Batch File_Jpeg_Image Resizing - Fatal编程技术网

Windows 用于调整图像大小的批处理脚本

Windows 用于调整图像大小的批处理脚本,windows,shell,batch-file,jpeg,image-resizing,Windows,Shell,Batch File,Jpeg,Image Resizing,我正在寻找一些帮助来编写一个批处理脚本来调整一堆.jpg图像的大小 我对批处理脚本没有太多经验。但这项任务将在windows机器上执行&因此我认为批处理脚本可能是一个好方法 我总是对听到其他的想法和方法感兴趣,或者让我知道我没有想到的元素 下面我列出了脚本的基本步骤/需求: 1) The images are located in a folder & are all(or should be) 500 x 500. 2) I need copy & past the imag

我正在寻找一些帮助来编写一个批处理脚本来调整一堆.jpg图像的大小

我对批处理脚本没有太多经验。但这项任务将在windows机器上执行&因此我认为批处理脚本可能是一个好方法

我总是对听到其他的想法和方法感兴趣,或者让我知道我没有想到的元素

下面我列出了脚本的基本步骤/需求:

1) The images are located in a folder & are all(or should be) 500 x
500.

2) I need copy & past the images to a new folder, where they will be
resized to 250 x 250.

3) I then need to repeat step 2 but this time resize to 125 x 125.
使用:


如果您想在命令行中专门执行此操作,也许是为了实现自动化,那么批处理中没有专门用于图像处理的命令。您可以用JScript或其他语言编写代码,并从命令行运行它,但既然已经有成熟的工具可用于此任务,为什么还要这样做呢

我推荐

获取可移植的Windows二进制文件,然后您可以使用magick.exe非常轻松地执行您想要的操作。例如,要将文件夹1中的所有png图像的大小(减半)调整为文件夹2:

@echo off
if not exist 2 md 2
for %%a in (1\*.png) do "path\to\magick.exe" -resize 50x50% "1\%~nxa" "2\%~nxa"
安装后,您可以使用,例如

注意:确保您的
magick.exe
命令位于
PATH
系统变量中,并且您指向现有或创建的目标文件夹(例如,在上述情况下,
mkdir 250x250/125x125/

对于Linux/Ubuntu,请参阅:

您可以检查哪些可以调整图像大小,而无需安装其他软件-它只使用windows内置功能:

@echo off
set "source_folder=c:\images"
set "result_folder_1=c:\res1"
set "result_folder_2=c:\res2"

for %%a in ("%source_folder%\*jpg") do (
   call scale.bat -source "%%~fa" -target "%result_folder_1%\%%~nxa" -max-height 250 -max-width 250 -keep-ratio no -force yes
)

for %%a in ("%source_folder%\*jpg") do (
   call scale.bat -source "%%~fa" -target "%result_folder_2%\%%~nxa" -max-height 125 -max-width 125 -keep-ratio no -force yes
)

同时检查。

可能有用,因为此答案已发布,ImageMagick的exe现在被称为
magick.exe
而不是
convert.exe
。更改了转换为magick由于您使用ImageMagick,使用正确的调整大小过程可能更明智。。。这意味着使用:对于(1*.png)中的%%a,执行“path\to\magick.exe”1\%~nxa”-颜色空间RGB-调整大小50x50%-颜色空间sRGB“2\%~nxa“我的评论对缩小规模是有效的。如果你想放大图片,请坚持回答的标准线。@MarkusvonBroady是否有其他使用RW Designer软件的人?没想到我会看到这一天!在运行之前,请确保文件夹存在。在运行此文件夹之前,请运行
mkdir 250x250
mkdir 125x125
对其进行投票,因为专门要求从批处理脚本执行此操作的问题-ImageMagick将允许此操作,并且经过了尝试和测试,自动化图像操作的流行工具。我最喜欢这个解决方案。它很简单,使用了系统上已有的内容,还提供了关于如何与系统接口以扩展或执行其他操作的良好示例。干得好很抱歉,调整大小的PNG文件的质量很低-它似乎使用了最简单的“最近邻”算法。@MarkusvonBroady-谢谢你的提醒。虽然随着现有windows工具的自动化,我做不了更多。对于后代来说,图像大小调整器现在是复活的Microsoft PowerToys的一部分
@echo off
set "source_folder=c:\images"
set "result_folder_1=c:\res1"
set "result_folder_2=c:\res2"

for %%a in ("%source_folder%\*jpg") do (
   call scale.bat -source "%%~fa" -target "%result_folder_1%\%%~nxa" -max-height 250 -max-width 250 -keep-ratio no -force yes
)

for %%a in ("%source_folder%\*jpg") do (
   call scale.bat -source "%%~fa" -target "%result_folder_2%\%%~nxa" -max-height 125 -max-width 125 -keep-ratio no -force yes
)