大量の画像データを一気に処理に使えるシェルスクリプト

大量の画像データを一気に処理に使えるシェルスクリプト

 
シェルスクリプト」で処理出来るようになると、UNIX/Linuxを人手で作業する何百倍も作業効率があがります。

大量の画像の一部分を切り抜くシェルスクリプト

youtube動画のスクリーンショットを100枚ほど撮った画像を一気に処理します。

今回のyoutube動画は常時コマーシャル表示がされており、切り抜きに必要部分が全て同じ位置(x,yポジション及び幅・高さ)だったのでImageMagicの convertコマンドを使用しました。

実際は、ImageMagick には convert の他に一括処理するためのコマンド mogrifyを使うとシェルスクリプトも必要なくコマンド一発で同じ処理が出来ます
シェルスクリプトでファイルを扱う方法を学ぶために、この度は convert を使いました。

#!/bin/sh
for f in *.jpg

do
convert $f -crop 1468x828+280+140 basename $f .jpg.png
done

 

for in の使い方いろいろ (bash)

for i in 0 1 3 5 8 9; do
echo $i
done

 
 
for i in {0..9}; do
echo $i
done

 
 
for i in seq 0 9; do
echo $i
done

 
 
for i in $(seq 0 9); do
echo $i
done

 
 
値を配列変数で指定するとき
array=(0 1 2 3 4 5 6 7 8 9)
for i in ${array[@]}; do
echo $i
done

 
 
値にコマンドライン引数を利用するとき
for i in "$@"; do
echo $i
done

 
複数ファイルを操作する時、シェルスクリプトで扱う方法を知っていると、同じ作業を繰り返さずコマンド一発で処理ができるので覚えておきましょう。
 
1行目の#!/bin/shという表記のことをシバンといいます。
あなたの使っているシェルが bash であっても、 #!/bin/bash としないで、約束通り #!/bin/sh とした方が無難です。
 
作業中・・・です。