0

有什么方法可以让我通过单个命令裁剪许多图片,或者在 gimp 或 photoshop 中有任何选项。

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

有人知道解决方案吗?

4

3 回答 3

2

我建议你使用 ImageMagick,它可以从这里免费用于 Windows、Linux 和 OSX

例如,将当前目录中的所有 jpeg 裁剪为最大 256 像素 x 最大 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 命令(我的技能在这里生疏)

FOR %a in (*.jpg) DO something

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

于 2014-04-04T12:13:53.943 回答
0

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

我正在使用它将 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
于 2014-05-06T15:10:19.677 回答
0

您可以尝试crop.bat(不需要外部二进制文件):

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

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

于 2017-10-03T12:33:05.293 回答