コマンドで任意の複数写真を一括縮小する(ubuntu)

メニュー
2016年03月13日

コマンドとマウス操作とどっちが便利なんでしょう。
Linux をやっている者としてはコマンドの方が便利だと思うんですけどね。

今日は画像の編集をシェルスクリプトで一発操作するのをやってみます。


最近はスマホにカメラがついたので写真の取り放題です。すごい数の写真がたまってしまいます。さて、これをどうするか?
ストレージが大容量で安いんだから全部そのまま保存しておく ってのも一つの方法でしょう。

でも、サイズが大きいということはコピーに時間がかかる事を意味しています。
DVDもSDカードも永遠に保存できるわけではありません。
これらに保存するなら数年に一度 新しいものにコピーを繰り返しながら保存していく必要かあります。
そのためには重要度の低い写真は縮小しておくのが便利です。
でも、縮小作業が結構大変です。
そんな時、私はシェルスクリプトを作り、一発で作業終了です。

では、どんなスクリプトか?
まずファイルエクスプローラで縮小したい写真を好きなだけ選び、スクリプトで選んだ写真を一発で縮小をしてしまうというものです。


そのシェルスクリプト ( 名前を resize.sh )

for a in `xsel -bo`
do
echo $a
convert -resize 500x $a ${a%.*}.small.${a##*.}
rm $a
done

たった、これだけです。

使い方ですが、
まず、普通のファイルエクスプローラで画像一覧を表示させます。
そしてマウスでサイズを小さくしたい写真を必要な数だけ選択します。
そしてコピー操作をします。(つまりubuntuだったらマウスを右クリックしコピーを選びます)
./resize.sh とコマンドを打ちます。

これで、今、選んだ写真は全部いっぺんに縮小されます。


スクリプトの説明。

xsel -bo
は、クリップボードの内容を読み出します。
マウスでファイルを選んでコピー操作をするとクリップボードにはコピー予定のファイルが登録されますからそれを読み出すわけです。
( コピー操作はコピーと貼り付けで行います。コピー操作をするとクリップボードにコピーをするファイル名が登録されます。貼り付け操作をするとクリップボードにあるファイル名のファイルをその場所にコピーする処理が行われます )

convert
は画像の編集コマンドで引数で何をするのかを指定します。
今回は -resize を指定し横幅500ピクセルを指定しています。

さらに今回はおまけの処理として縮小した写真はファイル名に".small."が入るようになっています。これで将来どの写真が縮小されているのかがすぐにわかります。




冬の八ヶ岳連峰
冬の八ヶ岳連峰

自作小説アクセス解析
自作小説お気軽リンク集
夢想花のブログ
私の定常宇宙論

kurri.org
geocities
fc2
webcrow
ninjya
xdomain
tokosys



inserted by FC2 system