プロが教えるわが家の防犯対策術!

photoshopのスクリプトで、下記のようなことができるでしょうか?

Aというフォルダに1.jpg、2.jpgのふたつのjpgデータがあります。
これをphotoshopで開いて、Aフォルダ内にpsd形式で保存するというものです。
スクリプト後、Aフォルダの中に、1.jpg 2.jpg 1.psd 2.psd という
4つのデータが入ります。…というものです。

開いているjpgデータが4つあれば、4つ全てをpsdで保存したいです。
別のフォルダでなく、もとのデータが入っているフォルダに、
名前は、そのままの名前で(1.jpg→1.psd)保存したいです。
そのあと自動で閉じてくれたら最高です。

PSD形式で保存・・・や
fileObj = new File("~/test.psd");
activeDocument.saveAs(fileObj, psdOpt, true, Extension.LOWERCASE);

全てのドキュメントを保存して閉じる・・・など
while (documents.length > 0)
{
activeDocument.close(SaveOptions.SAVECHANGES);
}

見てみましたが、うまく動かせません。
保存しますか、はい・いいえ、を毎回enterしないといけないのです。

どなたかご存知の方がいらっしゃいましたら、どうか教えてください。

もし、希望のスクリプトでなくても、その一部でも可能であれば
教えていただきたいです。
宜しくお願いいたします。

A 回答 (3件)

ダイアログを出ないようにしたらいいと思いますよ。


app.displayDialogs = DialogModes.NO;
と書きます。



こんな感じです。



app.bringToFront;
app.displayDialogs = DialogModes.NO;




function saveAsPSD(doc, name){
var psdSaveOptions = new PhotoshopSaveOptions();
var documentPath = name+".psd";
var fileSpec = new File(name);
psdSaveOptions.alphaChannels = true;
psdSaveOptions.annotations = true;
psdSaveOptions.embedColorProfile = true;
psdSaveOptions.layers = true;
psdSaveOptions.spotColors = true;
psdSaveOptions.typename = "";
doc.saveAs(fileSpec, psdSaveOptions);
}



var docs=app.documents;
if ( docs.length> 0) {
for (var i=docs.length-1;i>=0;i--){
var fname = docs[i].fullName.toString().split(".")[0];
saveAsPSD(docs[i],fname);
docs[i].close(SaveOptions.DONOTSAVECHANGES);
}
}




最後はJPGを保存しないで閉じます。
    • good
    • 0
この回答へのお礼

心のそこから、本当に感謝しております。
まさしく実行したかったことです。
イメージプロセッサでうまくいきませんでしたので。

もうひとつだけ、同じく仕事で使いたいスクリプトがございまして、
質問させていただこうと思っております。
もしよろしければ、そちらの質問もごらんいただけると助かります。

このたびは、ご回答いただきまして本当にありがとうございました。

お礼日時:2013/06/06 10:41

No.1です。



JavaScriptではあまり記述しませんが、VBSならば、似たようなことは結構やっています。
その上での回答だったんですが。


各フォルダ(元画像データがあったフォルダ)に保存しますよ。

・変換したい画像があるフォルダをひとつのフォルダにまとめておく
(例:A/BフォルダをMainフォルダに入れる)

・バッチのところで
アクション:前回の回答の要領で作ったアクションを指定。

ソース:フォルダ→Mainを指定。
サブフォルダをすべて含めるにチェック。ほかは状況で。

実行後:保存して閉じる:別名で保存を省略にチェック。

これで、OKなはずです。

さらにこの動作自体をアクションに登録すればワンキーで処理できるので、さらに楽です。

今後のために・・・アクションをスクリプトから実行できますし、逆にスクリプトをアクションで実行できますので、その辺をうまく活用するといろいろできると思います。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。勉強になりました。

お礼日時:2013/06/06 10:39

あくまでその処理を効率的に行いたいという前提(=スクリプトの学習目的ではない)で回答します。



もっとも簡単なのは、昔からある方法ですが、アクションを作ってバッチ処理(「ファイル」→「自動処理」→「バッチ」)するとご希望の処理がいとも簡単にできます。

アクション作成手順は該当のファイルを開いた状態で、アクション記録開始します。

1.別名で保存をし、その際にPSD形式にして、保存先をAフォルダにする。
※ファイル名は触らないでください。
2.閉じる

これで記録を停止します。

これだけです。

この回答への補足

アクションですと、別名保存で保存先をAにすると、
他のフォルダのデータも全部Aに保存されますよね。

Aフォルダの中の1.jpg、2.jpgはAフォルダに1.psd、2.psdで、
Bフォルダの中の1.jpg、2.jpgはBフォルダに1.psd、2.psdと
保存し、かつ、そのあと閉じたいと思っています。

たしかにスクリプトの学習目的ではなく、効率的に行いたいだけなのですが、
私の言葉が足りなかったために、誤解させてしまったようです。

この処理はアクションでは不可能と思います。
なので、スクリプトという題名で投稿させていただいております。

補足日時:2013/06/04 19:15
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!