画像を分割するためのOneliner?

画像を分割するためのOneliner?

画像を特定の割合で切り取ることができるonelinerコマンドを探しています。

入力がファイル名とスライスサイズであるとします。これを達成するための標準的なコマンドラインツールはありますか?私の画像は大きく混乱していたので、ImageMagickを試してみましたが、成功しませんでした(大きく、ほとんど透明でpngです)。

答え1

私はこの質問が少し古い質問であることを知っていますが、JRWのソリューションを使用してスクリプトを作成しました。スクリプトは、イメージファイルを指定されたサイズの一連のイメージに分割します。

#!/bin/bash
FILE=$1
FILENOEXT=${FILE%.*}
SLICEWIDTH=$2
WIDTH=`file $FILE | cut -f5 -d" "`
NUMOFSLICES=`echo "scale=2; $WIDTH/$SLICEWIDTH+1" | bc`
for i in `seq $NUMOFSLICES`
do
    LAST=$(($SLICEWIDTH * $i - $SLICEWIDTH))
    pngtopnm $FILE | pnmcut -left $LAST -width $SLICEWIDTH | pnmtopng > cropped-$FILENOEXT-$i.png
done
pngtopnm $FILE | pnmcut -left $LAST | pnmtopng > cropped-$FILENOEXT-$i.png

パラメーター1は、ファイル名とブロックの2番目の幅です。ほとんどの場合、スクリプトは最後のブロックからエラーを返しますが、最後のブロックがループの外側で切り捨てられた後は、すべてがうまく機能します... :)

答え2

ネットワークPBMツールはこれを行うことができます。トリミングについて話す場合:

$ pngtopnm image.png | pnmcut -width 500 -height 500 | pnmtopng > image_cropped.png

サイズを変更するには、pnmscale を使用します。

関連情報