2016-12-28 11 views
1

Macのイメージイベントの詳細を知りたい1つのタイプから別のタイプにファイルを保存する方法を学習しようとしています。例えば、私はfoobar.bmpという名前のBMPイメージを持っている場合、私はfoobar.jpgとしてそれを保存する方法を学びたいと思ったが、私のハンドラで、私はエラーを取得する:AppleScriptイメージイベントcant getクラスasDB

Image Events got an error: Can’t get «class asDB» id (application "Image Events") of image "foobar.bmp".

私のハンドラ内で私のコード:

tell application "Finder" 
    set directory to (choose folder with prompt "Please select a directory.") 
    set someImages to (files of folder directory where name extension is "bmp") as alias list 
    repeat with someImage in someImages 
     tell application "Image Events" 
      launch 
      set workingImage to open someImage 
      save workingImage as JPEG in directory 
      close workingImage 
     end tell 
    end repeat 
end tell 

私はsaveがで代わりにエイリアスパスのPOSIXパスを必要とするかもしれないかどうかを確認するためにテストをした:

set directoryPosix to (POSIX path of directory) 

とを変更:

save workingImage as JPEG in directoryPosix 

が、私はまだ同じエラーを生成していると私は理由を理解いけません。コードは機能しますが、エラーがスローされ、検索後に解決策が見つかりません。 ImageMagickを使ってBashでこれを行う方法はすでに分かっており、AppleScriptとSIPを使ってこれを行うことができましたが、Image Eventsについて詳しく知りたいと思います。エラーを投げるのは間違っていますか?私のOSが最新であり、ヨセミテバージョン10.10.5を稼働させるのに役立つ場合。

答えて

0

あなたは先のフォルダに新しいファイルのフル(HFSまたはPOSIX)パスではなく、alias指定子を指定する必要があります。

set directory to (choose folder with prompt "Please select a directory.") as text 
tell application "Finder" to set someImages to (files of folder directory where name extension is "bmp") as alias list 

tell application "Image Events" 
    launch 
    repeat with someImage in someImages 
     set workingImage to open someImage 
     set fileName to name of workingImage 
     set newFilePath to directory & text 1 thru -4 of fileName & "jpg" 
     save workingImage as JPEG in newFilePath 
     close workingImage 
    end repeat 
end tell