タイトルiPhoto向けのサンプルスクリプトが公開、そのままでは稼働しないが…カテゴリーデジタルカメラ, AppleScript
作成日2002/1/9 16:31:44作成者新居雅行
iPhotoを活用するためのスクリプト集がさっそく公開されている。写真画像をMailを使って送信する「Mail iPhoto Images」iPhotoで見えているサムネイルの元画像のファイルをFinderで見えるようにする「Show Image File」、iTunesやQuickTime Playerと組み合わせて写真にBGBを付けたムービーを作成する「Make Audio Card」、BGM付きスライドショーを作成する「Make Audio Slideshow」がある。後者の2つはQuickTimeのProキーが必要になる。
ところで、iPhotoはAppleScriptには対応していないのだが、なぜこうしたスクリプトがあるのだろうか? 実は、公開されたスクリプトはiPhotoのサムネールを、AppleScriptのアプリケーションにドラッグ&ドロップして実行するものである。AppleScriptのアプリケーションにとっては、Finder上でファイルをドラッグ&ドロップするのも、iPhotoからサムネールをドラッグ&ドロップするのも全く同じ情報が伝達されるというわけだ。つまり、iPhotoのドラッグ&ドロップにおいて、写真のオリジナルファイルの情報がデータとして組み込まれるという特性を利用した処理スクリプトなのである。
ただ、プログラムはいずれもそのままでは機能しない。プログラムの最初の方に、次のようなif文がある(「ツ」は半角で見えるはずだ)。

if ((folder of the item_info is false) and ツ
(alias of the item_info is false)) and ツ
(the file type of the item_info is in the type_list) or ツ
((the name extension of the item_info) is in the extension_list) then

ここの部分で最後の2行を取り除くなどして、次のように変更すると、とりあえずは処理に移るようになる(それでもエラーになる場合もあるが…)。

if ((folder of the item_info is false) and ツ
(alias of the item_info is false)) then

ここで、画像ファイルにファイルタイプとしてJPEGなどが設定されているものとして処理がなされているが、iPhotoは画像ファイルにはファイルタイプはつけない。よって元プログラムの3行目は、これらのスクリプト自体のバグだから取り除いて良しだろう。一方4行目であるが、理屈では動くはずであるが、日本語環境独特の問題なのかInternational Textと通常のTextの比較がうまくされない場合を経験したことがあるので、おそらくそうした問題が絡んで、is in演算子がうまく機能していないのだと思われる。取り除いた場合、テキストファイルでも処理がなされてしまうが、とりあえず動かす分には問題はないと思われるので、取り除いてしまおう。
これでとりあえずスクリプトは動かすことができるのであるが、スクリプト自体は、MailやiTunes、QuickTime Playerの処理が中心である。いずれにしても、iPhotoにあるデータを元になにかをするという方法は、Finderでのドラッグ&ドロップと全く同じ方法が使えることは確かである。問題は、AppleScriptアプリケーションにドラッグ&ドロップしないといけないという点での使い勝手ということになるだろう。たとえば、iPhotoでサムネイルを選択して、Script Menuからスクリプトを選ぶということは現状ではできないのである。
関連リンクiPhoto Script