2014年11月19日水曜日

【Linux】コマンドでファイル名を連番に変更する.

nautilus を開いて,ファイルを選択して,F2を押して,番号を入力して,Enter.

十数回ならばまだしも数十回,数百回,この作業を続けるのは非現実的なのでコマンドでぱぱっと解決したいと思います.

利用するのは for ループと数値計算,加えてコマンド置換と printf コマンドです.

答えを先に示してしまうとこんな↓感じ

$ j=1
$ for i in *.png
> do
>     mv ${i} $( printf %03d ${j} ).png
>     j=$(( $j + 1 ))
> done


まず,変数 j に 1 を代入し,次に for ループを開始.

変数 i に該当する PNG ファイルを代入したら,mv コマンドでその PNG ファイルのファイル名を j に変更.

その際,コマンド置換と printf の組み合わせで桁合わせ(ここでは三桁表示).

最後に,j を j + 1 に更新して,for ループの始めに戻る.

$ ls

してみると,

001.png 002.png 003.png 004.png 005.png
006.png 007.png 008.png 009.png 010.png
011.png 012.png 013.png 014.png 015.png
・・・
・・・

(中略)

051.png 052.png

みたいな感じになり,無事成功.



例えば,前回のトリミングの話や tar コマンドを組み合わせると,こんなこともできそうです.↓

$ j=1
$ for i in *.png
> do
>     k=02$( printf %03d ${j} ).png
>     convert -crop 1368x1080+213+0 ${i} ${k}
>     tar rvf hoge.tar ${k}
>     rm ${i} 
>     j=$(( $j + 1 ))
> done

それにしても for ループで大量のファイルを扱うときはミスがないかいつもハラハラします.

ヘタすると取り返しの付かない事態になりかねませんからね.

だから,こんな記事書いて忘れないようにしてるんですけど.


2014年11月17日月曜日

【Linux】大量の画像をコマンド一発でトリミングする.

画像をトリミングするとき,私は GIMP などの GUI ソフトで対応していますが,複数のファイルを扱う場合にすべて GIMP で開くのは大変なので,コマンドで処理するのが便利です.

使用するのは,お馴染みの convert コマンド.

$ convert -crop 256x128+64+32 input.png output.png


上の例では,左から 64px,上から 32pxの位置から 256 x 128px の画像をトリミングします.

また入力ファイルと出力ファイルに同じファイル名を指定した場合,上書きされます.

大量に扱う場合は for と合わせて,

$for i in *.png
>do
>    convert -crop 256x128+64+32 ${i} ${i%.png}_2.png
>done


とすれば,**.png ファイルが全て 256 x 128px でトリミングされて **_2.png として保存されます.



この方法,どんなときに活躍するかと言えば,ずばりスマホでスクリーンショットを撮ったときです.

(余談ですが,私はスクショを撮る度に Dropbox にアップロードするように設定しています.)


左の画像(トリミング前)は,上下にそれぞれ無駄なものがが表示されていますが,

$ convert -crop 1080x1701+0+75 input.png output.png


としてやれば,必要かつ十分な情報量の右の画像(トリミング後)が得られます.




ちなみに,identify コマンドでそれぞれの画像の情報を見ると,output.png にはしっかりとトリミングした形跡が残っています.

input.png
PNG 1080x1920 1080x1920+0+0 8-bit DirectClass 152KB 0.000u 0:00.000


output.png
PNG 1080x1701 1080x1920+0+75 8-bit DirectClass 133KB 0.000u 0:00.000



大量のスクリーンショットを撮って,ブログの記事にする場合などに重宝すると思います.

2014年11月15日土曜日

M.ZUIKO DIGITAL 25mm F1.8 購入レポ.

最近どうも散財気味ですが,友人の結婚式が近いので(それを言い訳に)レンズを追加しました.



M.ZUIKO DIGITAL 25mm F1.8



45mm F1.8 に続いて,M.ZUIKO PREMIUM シリーズ二本目です.

45mm F1.8 も気に入っているのですが,やはり 35mm 判換算 90mm は焦点距離が少々長い.屋外撮影ならば最高のパフォーマンスを提供してくれるのですが,屋内に入ると途端に役不足.

仕方なく 17mm F2.8 を付けていましたが,45mm F1.8 に比べると圧倒的に表現力が劣ります.




45mm F1.8(奥)と 25mm F1.8(手前)



そんな理由で,次のレンズは絶対これにしようと思っていました.実際,Amazon のレビューでも 45mm F1.8 を持っていて焦点距離に悩んでいる人にオススメという意見が多数.レンズは値下がりすることもあまりないので,将来的にどうせ買うなら今買っても同じと判断しました.




45mm(左)と 25mm(右)



それにしても見た目までそっくりな と 45mm と 25mm.しかしスペックを比較してみると,フィルターサイズや質量が異なることがわかります.



25mm F1.845mm F1.8
焦点距離25mm(35mm判換算50mm)45mm(35mm判換算90mm)
レンズ構成7群9枚(非球面レンズ2枚) 8群9枚(E-HRレンズ2枚)
画角47°27°
最短撮影距離0.25m0.5m
最大撮影倍率0.12倍(35mm判換算0.24倍相当)0.11倍(35mm判換算 0.22倍相当)
最近接撮影範囲144×108mm157×118mm
絞り羽枚数7枚(円形絞り)7枚(円形絞り)
最大口径比F1.8F1.8
最小口径比F22F22
フィルターサイズØ46mmØ37mm
最大経×長さØ57.8×42mmØ56×46mm
質量137g116g



また,最短撮影距離が1/2になっているのに対して,焦点距離は半分よりも大きいので,25mm はマクロ撮影にも向いていると言えそうです.マクロコンバーター(MCON-P02)を付ければさらに楽しい写真が撮れそう!?



それから,レンズを買った時のお約束として,プロテクトフィルターを買ってきました.

45mm F1.8 にも付けているKenko の PRO1D プロテクターを買いに行ったところ,まったく同じ値段で PRO1D NX プロテクターなるものを発見.箱の裏を見ても違いがわからない.そこで店員に聞いてみると,NX の方は縁に研磨がかけられていて,ケラれにくくなっているんだとか.(レンズ自体は全く同じ)



Kenko PRO1D NX プロテクター(W)46mm



残念ながら NX シリーズは色の選択肢がブラックのみでしたが,どうせ同じ値段なら,新しい方かつ工夫が加えられている方が欲しいと思い,NX の方を買いました.




PRO1D NXプロテクター 46mm(左)とPRO1D プロテクター 37mm(右)



37mm のノーマルバージョンとの比較してみると,確かに縁のところに研磨がかけられ,シルバーの部分が見えていることが分かります.




E-M10 + 25mm F1.8(レンズフードなし)+ PRO1D NX プロテクター(W)



レンズがシルバーなので心配しましたが,これはこれでアクセントが入って良い感じです.




E-M10 + 25mm F1.8(レンズフードあり)+ PRO1D NX プロテクター(W)



またオリンパスにしては珍しく,レンズフード同梱です.プロテクターとレンズフードどっちかだけで十分という声もよく聞きますが,私は心配症なのであるなら両方取り付けます.


まだ試し撮りしかしていないので,これから出かけて写真を撮ってこようかと思います.