人気ブログランキング | 話題のタグを見る
キーボードとカーソルをAppleScriptで自動運転(RAWを別名で保存)
キーボードとカーソルをAppleScriptで自動運転(RAWを別名で保存)_c0070938_10305147.png

写真をRAWデータで受け取ることが時々ある。というか本当はJPEGなのにPhotoshopがどこかのメタデータを読んでRAWだと誤認するっぽい。これを開いて必要な加工(リサイズとかキリヌキとか)を施すまではいいが、それを別名で保存するのがメンドくさい。まずこういう↓ウィンドウが出る。もしかすると通常は出ないのかも知れないが、ウチで使ってる「解像度変更して保存して閉じる」アクションを使うと、こういうウィンドウが出る。
キーボードとカーソルをAppleScriptで自動運転(RAWを別名で保存)_c0070938_10305578.png
これを「IMGP3961_.jpg」という名前で保存したい。必要な手順はこうだ。

1)キーボードの右矢印キーを押してファイル名の選択を解除しカーソルを点滅させる。
2)deleteキーを5回連打して「 のコピー」を消し、代わりにアンダーバーを入力。
3)カーソルを「フォーマット」のところに移動してクリック。
キーボードとカーソルをAppleScriptで自動運転(RAWを別名で保存)_c0070938_1031285.png
4)プルダウンメニューから「JPEG」を選択し、リターン。
キーボードとカーソルをAppleScriptで自動運転(RAWを別名で保存)_c0070938_1031781.png
5)「JPEGオプション」で「12」を入力してリターン。
キーボードとカーソルをAppleScriptで自動運転(RAWを別名で保存)_c0070938_10312035.png
6)最後に command + D を押して「保存しない」。おしまい。

キーボードだけでもマウスだけでも完結せず、両方必要なところがイヤだ。1枚や2枚ならなんてことないけど、この作業を何十回も繰り返すのはつらい。そこでAppleScriptだ。以下のAppleScriptにQuicksilverでキーボードショートカットを割り当てて実行すると、以上の作業が2秒で終わる。よりチューニングを施せば1秒でも可能だと思う。しかしありがたいのは2秒で終わることではなく、その間集中したり考えたり迷ったり判断したりということが一切不要になることだ。

ただしカーソルをAppleScriptで操作するには、Macに「cliclick」というものをインストールしておく必要がある。興味を持たれた方はザリガニさんのところでcliclickについて学んでください。ちなみに画面上の座標を得るには command + shift + 4 を押す。「右矢印のkey codeは124」というようなことは「Key Codes」で調べる。

◉後記:なんでPhotoshopのアクションでやらねーのよ、というツッコミをいただいた。いや、やろうとしたんですよ。でもどうしてもできなかった。そのうちに、もしかしてこのウィンドウいつも決まった位置に出るんじゃないか、だとしたら AppleScript と cliclick でイケるじゃん、と気付いたわけです。これはアクションで試行錯誤してた時とは全く違うアプローチなので、その頭で改めて考えると、アクションでできるのかも。

●サンプルスクリプト
delay 0.3 --0.3秒待て
tell application "System Events"
key code 124 --右矢印キーを押せ
delay 0.02
key code 51 --delete
delay 0.02
key code 51 --delete
delay 0.02
key code 51 --delete
delay 0.02
key code 51 --delete
delay 0.02
key code 51 --delete
delay 0.02
key code 102 --一応英数キーを押してから
key code 94 --アンダーバー
end tell
delay 0.1 --必要かどうかわからんけど習慣的に挟む

do shell script "cliclick -w 50 960 540 960 650"
--座標「960 540」と「960 650」を、50ms(0.05秒)開けて連続クリック
delay 0.1
tell application "System Events"
key code 36 --リターン
end tell

--ウィンドウ名『JPEG オプション』
--「画質」が選択状態にあるので「12」を入力
tell application "System Events"
keystroke "12"
delay 0.1
keystroke return
delay 1
keystroke "d" using command down
end tell
do shell script "afplay /System/Library/Sounds/Purr.aiff"
●このサンプルスクリプトの使い方

1行目の「delay 0.3」は何故必要かというと、これをQuicksilverで例えば「command + option + S」に割り当てた場合、「delay 0.3」がないと、押した瞬間に「command + option + S + 右矢印」を押したことになってしまい、誤動作するから。だから0.3秒以内に指を離す必要がある。
by nobiox | 2014-02-19 10:35 | ├バカスクリプト |
<< オレ氏、「極細スペース」の存在... | より正しい物語を得た音楽はより... >>