AppleScriptでプレビューの「書き出し」を実行したい

毎週大量のEPS(CMYK)をJpeg(RGB)に変換していて、
現在はターミナルからImageMagickの
convertコマンドでcronから自動実行させています。
しかし画質が今一なので他の方法を検討したところ、
プレビューの画質が良いので、
AppleScriptを使って自動変換しようと考えています。
そこで質問ですが、AppleScriptで
Jpeg保存するコマンドを教えて下さい。
EPSファイルを開くコマンドは
open{filename} で出来ました。
しかしJpegに保存するためにはファイルの
「保存」や「別名で保存」ではなく、
「書き出し」を行う必要があり、
いろいろ試しましたが、コマンドがみつかりません...
ご存知の方がいましたらご教授いただけますでしょうか。
また、他の方法で画像変換を自動で行っていましたら
その方法も教えていただけると助かります。
よろしくお願いします。

投稿日 2005/07/06 12:06

返信: 25

2005/07/11 11:53 Community User への返信

「ファイル>変換&修正」では、自動的に実行は出来ないのではないでしょうか?yamaichiさんは、サーバで定期的にフォルダを監視して変換する作業を、自動でなさりたくてスクリプトでの実行を模索されているのだと思います。
GraphicConverterはAppleScriptコマンドでは「convert」をサポートしていないので、いったんopenでウィンドウに開いて、saveでフォーマット変換するしか無いのかな。ただ、それではRGBモードにはできなくて困っておられるのでしょうか?私もちょっと辞書をあたってみましたが、カラーモードを変更するコマンドが見つからないです。

2005/07/11 11:54 Community User への返信

HAL 様
コメントありがとうございます。
ご回答通り手動なら簡単にできるのですが、できれば夜間に自動的に実行させたいと考えています。理由は実環境のXserveは日中ファイルのダウン・アップを複数人が繰り返しているため手動による変換は難しい状況です。ですからAppleScriptを用いて自動化して、利用者のいない午前1時から自動的にスタートさせたいと考えています。
ImageMagickではPerl + cronで簡単に対応できるのですが...

2005/07/11 12:06 Community User への返信

Y. Kawabe 様
回答が前後してしまい申し訳ございません。
AppleScriptで悪戦苦闘している理由は、AppleScript自体はじめてでどうすれば良いか今一理解していないためです。お騒がせして誠に申し訳ございません。
RGBへの変換は手動でCMYK形式のEPSファイルを開くと、勝手にRGBになっているので、多分大丈夫だと思っています...

2005/07/11 14:03 Community User への返信

EPSフォルダにあるファイルを全てJPEGに変換してJPGフォルダに保存し、処理後のEPSファイルをProcessedフォルダに移動するスクリプトは、こんな感じになります。
set srcFolder to "Macintosh HD:xxx:yyy:EPS:"
set destFolder to "Macintosh HD:xxx:yyy:JPG:"
set endFolder to "Macintosh HD:xxx:yyy:Processed:"
set origDelim to the text item delimiters of AppleScript
set the text item delimiters of AppleScript to {"."}
tell application "Finder"
set srcFiles to (files of alias srcFolder)
repeat with aFile in srcFiles
set jpgFile to (aFile as string)
set epsName to the name of aFile
set jpgName to (text item 1 of epsName) & ".gif"
set jpgFile to (destFolder & jpgName)
tell application "GraphicConverter"
activate
open alias epsFile
save window 1 in jpgFile as JPEG
close window 1
end tell
move aFile to endFolder
end repeat
end tell
tell application "GraphicConverter" to quit
set the text item delimiters of AppleScript to origDelim
一応動くと思いますが、エラー処理等一切してませんので、お使いになる場合は、自己責任でお願いします。

2005/07/11 16:39 Community User への返信

Y. Kawabe 様
ご返信ありがとうございます。
ソースの作成ありがとうございます。非常に感謝しております。
ただ...これをそのまま使用しようと試みましたが、
AppleScriptのエラーが表示されてしまいました。
ソースの修正箇所は
・はじめのフォルダ指定の3行
・13行目
 set jpgName to (text item 1 of epsName) & ".gif" を
 set jpgName to (text item 1 of epsName) & ".jpg" に変更
・17行目
 open alias epsFile を
 open alias epsName に変更 
AppleScriptエラーの表示内容は
GraphicConverterでエラーが起きました。:alias
"EPSファイル名"を取得できません。アクセスが許可
されていません。
エラーメッセージで考えたのは使用するフォルダとファイルのアクセス権ですが、全て「読み/書き」で設定しています。
他にも何か問題があるのでしょうか?
ここまで教えていただき誠に申し訳ございませんが、よろしくお願い致します。

2005/07/11 16:55 Community User への返信

すいません。いろいろミスってますね。
open alias epsName
   ↓
open alias (srcFolder & epsName)
にしてください。

2005/07/11 18:09 Community User への返信

Y. Kawabe 様
ご回答ありがとうございます。
正しく動作させる事ができました。ありがとうございます。
また、ご協力いただいた皆様にも心から感謝致します。ありがとうございました。
一応、最後に動作させたソースを書きます。
set srcFolder to "Macintosh HD:xxx:yyy:EPS:"
set destFolder to "Macintosh HD:xxx:yyy:JPG:"
set endFolder to "Macintosh HD:xxx:yyy:Processed:"

set origDelim to the text item delimiters of AppleScript
set the text item delimiters of AppleScript to {"."}
tell application "Finder"
set srcFiles to (files of alias srcFolder)
repeat with aFile in srcFiles
set jpgFile to (aFile as string)
set epsName to the name of aFile
set jpgName to (text item 1 of epsName) & ".jpg"
set jpgFile to (destFolder & jpgName)
tell application "GraphicConverter"
activate
open alias (srcFolder & epsName)
save window 1 in jpgFile as JPEG
close window 1
end tell
move aFile to endFolder
end repeat
end tell
tell application "GraphicConverter" to quit
set the text item delimiters of AppleScript to origDelim
後はエラー処理ですね...
どんな誤動作があるか考えて追加してみます。
あと余談ですが、
画像サイズを縦横比そのままで200x200以内にする必要がありますが、GraphicConverterでは縦横比そのままで変換する処理が大変そうなので、結局ImageMagickを用いて変換させる事にしました。
この場合、モアレは発生しません。

2005/07/11 23:50 Community User への返信

見直してみると、「set jpgFile to (aFile as string) 」の行は不要ですね。
>画像サイズを縦横比そのままで200x200以内にする必要があります
スケーリング比率が一定なら、例えば0.5だと
scale window 1 horizontal 0.5 vertical 0.5
となります。オリジナルのサイズがバラバラなら、
set windowsize to (image dimension of window 1)
set xsize to (item 1 of windowsize)
set ysize to (item 2 of windowsize)
if xsize > ysize then
set scaler to 200/xsize
else
set scaler to 200/ysize
end if
scale window 1 horizontal scaler vertical scaler
とすれば、縦横大きい方が200ドットになります。

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

AppleScriptでプレビューの「書き出し」を実行したい

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。