2013/02/10 (Sun)

#SH02E で撮影した画像を一括リサイズしてみた。

今回は、以前の下記エントリーの続きの話というか備忘録。
携帯のデジカメで撮影した画像をブログなどの記事に使うために、自動リサイズとか一括処理しちゃおうという試みです。

SH-02Eカメラ+Dropboxコンビが結構使える
http://skierbasser.blog62.fc2.com/blog-entry-223.html

前回エントリーでは、
・今のスマホSH-02Eで撮影した画像が結構キレイ:ブログのネタにも色調調整無しでほぼ使える。
・Dropboxのカメラアップロード機能により、スマホのWiFi接続時にDropboxへ自動アップロードされる。
・DropboxのPC用ソフトを入れるとローカルフォルダと自動同期される:スマホの画像も自動的にPCローカルに複製される。
ってことで、スマホで撮った画像は自動的にPCに複製されるわけですが、さらに楽しちゃおうという話。


現状での不満点を上げると
・Dropboxのカメラアップロード機能のファイル名は、「yyyy-mm-dd hh.mm.ss.(拡張子)」で拡張子前のドットの他に時刻区切りにもドットが使われるんだけどFC2の新画像アップロードではファイル名にドットは認められない。余計なドットとついでにハイフンも無くしたい。
・撮影サイズはぼちぼち大きなサイズにしたいが、ブログにアップするのはVGA(640×480)サイズくらいがいい。
SH-02Eのスクリーンショット(画面コピー)もDropboxのカメラアップロード機能の対象だが、スクショの画像フォーマットはPNG。ブログ画像はJPGで揃えたい。
SH-02Eの撮影で横で撮影してるのに時々縦に保存されるので、左90度回転しなくちゃいけないことがある。
といったところ。


得意のWSHでなんとかしよう。

一番目はファイル名を変えるだけなので、Windowsに元々入ってるFileSystemObjectだけで行ける。
画像のリサイズ、フォーマット変更、回転はそれ用のコンポーネントが必要なので、ネットで漁ってみると以下を見つけたよ。

ImageMagick
http://www.imagemagick.org/

材料は揃えたので、後はどういうプロセスで自動化するかを考える。

PCのDropboxフォルダのファイルをそのまま編集することもできるが、そこはスマホのオリジナルファイルのバックアップ場所でもあり、専用のフォルダを作って自動処理したいファイルをまとめてコピーして一気に処理させることにする。

一部回転させないきゃいけない画像はそこのサブフォルダ「rotate-90」にコピーすることにする。

処理結果の保存先もそれ用のフォルダを準備する。

処理したら処理前の画像はコピーなので自動で削除しちゃおう。

とここまで決めたら、ごりごりVBScriptスクリプトを書くだけ。
できたのがこれです。

~ForBlogImage.vbs~
msgbox("始めるよ")
InFolder = "D:\data\imagemagick\input\"
OutFolder = "D:\data\imagemagick\output\"
Set objImg = CreateObject("ImageMagickObject.MagickImage.1")
Set oFSO = CreateObject("Scripting.FileSystemObject")

Set oFolder = oFSO.GetFolder(InFolder & "rotate-90")
For Each oFile In oFolder.Files
msgs = msgs & vbcrlf & oFile.Name & ":左回転 " & objImg.Convert("-rotate", "-90", InFolder & "rotate-90\" & oFile.Name, InFolder & oFile.Name)
oFile.Delete
Next


Set oFolder = oFSO.GetFolder(InFolder)
For Each oFile In oFolder.Files
InFile = Replace(oFile.Name,"-","")
extpos = InStrRev(InFile,".")
Outfile = Replace(Left(InFile,extpos-1),".","") & ".JPG"
msgs = msgs & vbcrlf & oFile.Name & ":リサイズ " & objImg.Convert("-thumbnail", "640x640", InFolder & oFile.Name, OutFolder & Outfile)
oFile.Delete
Next
Set objImg = Nothing
Set oFSO = Nothing

msgbox(msgs)
~~

使い方
ImageMagickをインストールする。
ImageMagick
http://www.imagemagick.org/


Binary Releasesから自分の場合はWindows7 64bitなので、「ImageMagick-6.8.2-8-Q16-x64-dll.exe」
Windows 32bitなら「ImageMagick-6.8.2-8-Q16-x86-dll.exe」でいけると思う。

インストール途中でデスクトップにアイコン置くか?みたいなチェックボックスが6個くらい並んでる中に「□Install ImageMagickObject OLE Control for VBScript, Visual Basic, and WSH」の項目にチェックを入れること。


ちなみにWSHを使うのでMacでは動きません。Windows環境ならWSH動かすのになにも必要ありません。
テキストエディタを開いて、上のスクリプトをコピペして、拡張子vbsで保存するだけで動きます。

処理する画像を置くフォルダInFolder を準備する。自分は "D:\data\imagemagick\input\"にした。
左90度回転させる画像置き場はInFolder & "rotate-90"となるのでフォルダを作成しておく。
処理結果画像を置くフォルダOutFolder を準備する。 自分は "D:\data\imagemagick\output\"にした。

上のスクリプトの2~3行目を自分の環境でのパスに書き換える。
回転の必要が無ければスクリプトの7~11行目を削除すればよいが残しておいてもrotate-90フォルダさえ存在すれば問題無い。
処理前の画像ファイルを削除したくなければ「oFile.Delete」の行を削除する。
リサイズのサイズを変えたいなら、
msgs = msgs & vbcrlf & oFile.Name & ":リサイズ " & objImg.Convert("-thumbnail", "640x640", InFolder & oFile.Name, OutFolder & Outfile)
"640x640"を狙いのピクセルサイズに書き換えればおk。

ちなみに-thumbnail処理するとEXIF情報も削除してくれるおまけ付きです。


それで、左回転させたい画像はrotate-90フォルダに、リサイズしたい画像はInFolderに、コピーしてから、保存したvbsをダブルクリックすれば一括処理されるはず。

・rotate-90フォルダの画像は左90度回転して、InFolderに移動する。
・InFolder画像は縦か横が640ピクセルに縮小され、OutFolderに移動する。(アスペクト比は維持)
・PNG画像はJPG画像に変換される。
・出力されたファイル名はドットとハイフンが削除されたものになる。

もちろん、他にも様々な画像処理ができるので、ImageMagickで検索するとよいさー。
ネットで探したImageMagickの画像処理を、FilesystemobjectのGetfolderオブジェクトのFilesコレクションをfor eachでループさせただけなので。



関連エントリー
SH-02Eカメラ+Dropboxコンビが結構使える
http://skierbasser.blog62.fc2.com/blog-entry-223.html

改めて #sh02e カメラ機能を復習→Instagram
http://skierbasser.blog62.fc2.com/blog-entry-257.html


自宅にWiFi環境があるといろいろ捗りますねぇ。
NEC Aterm WR8750N[HPモデル] PA-WR8750N-HP
by カエレバ
関連記事

ブログ内検索


テーマ : Android
ジャンル : 携帯電話・PHS

tag : Android スマートフォン アクオスフォン SH-02E WiFi VBScript

コメント

非公開コメント

プロフィール

skierbasser

Author:skierbasser
神奈川県横浜市
FITに乗ってます。
最近は近所でメバリングばかりです
AQUOS PhoneSH-02Eユーザーになりました

メバリング行ってみる?は、amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、Amazonアソシエイト・プログラムの参加者です。

最新記事
全記事
最新コメント
counter
Calender
カテゴリ
tag cloud
Pictlayer
Google+
つぶやいてみる?
amazonレビュー
ブログでレビューしたアマゾン商品 マウスを合わせるとその商品を紹介してるブログのURLが表示されますよ。