Batch file 如何批量裁剪多个图像

Batch file 如何批量裁剪多个图像,batch-file,photoshop,gimp,resize-crop,Batch File,Photoshop,Gimp,Resize Crop,有没有办法让我可以通过一个命令裁剪出许多图片,或者gimp或photoshop中有没有任何选项 我知道图像的宽度是930,高度是800。我想把这些图像分割成两个新的图像,宽度应该等于930/2=465,高度应该保持不变 有人知道这个解决方案吗?我建议您使用ImageMagick,它在Windows、Linux和OSX上免费提供 例如,将当前目录中的所有JPEG裁剪为最大256像素乘以最大256像素 mogrify -resize 256x256 *.jpg 出于您的目的,假设输入文件名为a.j

有没有办法让我可以通过一个命令裁剪出许多图片,或者gimp或photoshop中有没有任何选项

我知道图像的宽度是930,高度是800。我想把这些图像分割成两个新的图像,宽度应该等于930/2=465,高度应该保持不变


有人知道这个解决方案吗?

我建议您使用ImageMagick,它在Windows、Linux和OSX上免费提供

例如,将当前目录中的所有JPEG裁剪为最大256像素乘以最大256像素

mogrify -resize 256x256 *.jpg
出于您的目的,假设输入文件名为
a.jpg
,您可能需要

convert  a.jpg -crop 465x800+465+0 +repage a2.jpg
convert  a.jpg -crop 465x800+0+0 +repage a1.jpg
a1.jpg和a2.jpg将是两部分

我不知道你是在Windows还是Linux上,但是你可以很容易地把它放在一个循环中,以完成你所有的图像

未经测试:

Linux

for f in *.jpg
do
    newbase=$(basename "$f")
    convert "$f" -crop 465x800+465+0 +repage "${newbase}_1.jpg"
    convert "$f" -crop 465x800+0+0 +repage "${newbase}_2.jpg"
done
MS-DOS命令(我的技能在这里已经过时了)


在您尝试任何命令之前,请备份您的图像

假设您有一个包含图像(递归)的文件夹,只有图像,没有其他文件。。。 假设所有这些图像都足够大,可以分割。。。 您可以使用此脚本

我用它将3840x1080图像分割成2个1920x1080图像,用于双屏桌面背景图像

#!/bin/bash

files=$(find -type f)
basedir=$(pwd)

width=1920 
height=1080

for f in $files
do
        dir=$(dirname "$f")
        cd $dir

        file=$(basename "$f")
        newfile=$(echo $file | cut -d. -f1)

        convert "$file" -crop ${width}x${height}+0+0 +repage "${newfile}_1_of_2.jpg"
        convert "$file" -crop ${width}x${height}+${width}+0 +repage "${newfile}_2_of_2.jpg"

        cd $basedir
done
您可以尝试(不需要外部二进制文件):


对于批量图像裁剪,您可以查看命令。

您是如何进行此操作的?
#!/bin/bash

files=$(find -type f)
basedir=$(pwd)

width=1920 
height=1080

for f in $files
do
        dir=$(dirname "$f")
        cd $dir

        file=$(basename "$f")
        newfile=$(echo $file | cut -d. -f1)

        convert "$file" -crop ${width}x${height}+0+0 +repage "${newfile}_1_of_2.jpg"
        convert "$file" -crop ${width}x${height}+${width}+0 +repage "${newfile}_2_of_2.jpg"

        cd $basedir
done
call crop.bat -source image.jpg -target image-left.jpg  -percentage yes -right 50 -force yes

call crop.bat -source image.jpg -target image-right.jpg  -percentage yes -left 50 -force yes