複数画像をffmpegでリサイズしてrename ~関数編~

.zshrcとかに定義したり別ファイルにして読み込むとか。 shellscript職人からしたらアホっぽいですすいません。

連番でリネーム

function rename_seq(){
  local IMG_NAME="files"
  local EX="png"


  if [ $1 ]; then
    IMG_NAME=$1
  fi

  if [ $2 ];then
    EX=$2
  fi

  local ARG1=$(echo \$_= \"\$N-$IMG_NAME\")
  local EXE1="rename -N 01 -X -e '${ARG1}' *.${EX}"
  echo $EXE1
  $(eval ${EXE1})
  local EXE2="rename -S '-' '_' *.${EX}"
  echo $EXE2
  $(eval ${EXE2})
}
.
├── asdfads.jpg
├── hogehoge.jpg
└── testtest.jpg

第一引数に変更後の名前、第二引数にターゲットの拡張子

rename_seq test jpg
.
├── 01_test.jpg
├── 02_test.jpg
└── 03_test.jpg

複数画像サイズ変更

function resize_images(){
  local EX="png"
  local SIZE=640
  
  if [ $1 ]; then
    SIZE=$1
  fi

  if [ $2 ]; then
    EX=$2
  fi

  mkdir "./w${SIZE}"

  # 3 resize
  local EXE1="ls | grep -E '.($EX)$' | sed -e 's/\.$EX//' | xargs -I {} ffmpeg -i {}.$EX -vf scale=${SIZE}:-1 -y w${SIZE}/{}_w$SIZE.$EX"
  echo $EXE1
  $(eval ${EXE1})
}

第一引数に変更後の画像の横幅のサイズ、第二引数にターゲットの拡張子

resize_images 640 jpg
.
├── 01_test.jpg
├── 02_test.jpg
├── 03_test.jpg
└── w640
    ├── 01_test_w640.jpg
    ├── 02_test_w640.jpg
    └── 03_test_w640.jpg

以上