[Automator & AppleScript] Automator: 入力が画像ファイルかを判別する

拡張子をみるか、file コマンドの返値を使うか。

Contents

画像ファイルの情報を確認する

info for で返ってくる値を確認してみる。
拡張子あり。

{name:"dialog.png", creation date:date "2014年2月13日木曜日 0:02:49", modification date:date "2014年2月13日木曜日 0:02:50", size:46570, folder:false, alias:false, package folder:false, visible:true, extension hidden:false, name extension:"png", displayed name:"dialog.png", default application:alias "Macintosh HD:Applications:Preview.app:", kind:"PNG イメージ", file type:"", file creator:"", type identifier:"public.png", locked:false, busy status:false, short version:"", long version:""}

拡張子なし。

{name:"desktop", creation date:date "2014年2月12日水曜日 15:44:35", modification date:date "2014年2月12日水曜日 15:44:35", size:571035, folder:false, alias:false, package folder:false, visible:true, extension hidden:false, name extension:missing value, displayed name:"desktop", default application:alias "Macintosh HD:Applications:TextEdit.app:", kind:"書類", file type:"", file creator:"", type identifier:missing value, locked:false, busy status:false, short version:"", long version:""}

拡張子を利用する

試さなかったけれども参考ソース。

whose file type iswhose name extension is のような形で判別しているよう。

.jpg とか .jpeg とか付ける方や、拡張子なしの方とかもいたような気がするし、いろいろ考えて見送りました。

file コマンドを利用する

file --mime-type -brimage/png といった値が返ってくる。

こちらを参考にさせて頂きました。

対応したい画像の MIME Type を列挙して比較する。

on isImagefile(someItem)
  set filePosixPath to quoted form of (POSIX path of (someItem as alias))
  set fileType to (do shell script "file --mime-type -br " & filePosixPath)
  set validFileType to {"image/png", "image/jpeg", "image/gif"}
  if fileType is in validFileType then return true
  return false
end isImagefile

補遺