0

単一のコマンドで多くの画像をトリミングできる方法はありますか、または gimp または photoshop にオプションはありますか。

私が知っていることは、画像の幅が 930 で高さが 800 であることです。これらの画像を 2 つの新しい画像に分割したいのですが、幅は 930/2=465 に等しく、高さは同じままにする必要があります。

誰でも解決策を知っていますか?

4

3 に答える 3

2

ここからWindows、Linux、OSXで無料で利用できるImageMagickを使用することをお勧めします

たとえば、現在のディレクトリ内のすべての 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 は 2 つの半分になります。

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 に答える