PhotoshopでドキュメントをPSD形式で別名保存をするjavaScriptを紹介します。
jpgやpdfなどで保存する際にも応用できる考え方なのでしっかり押さえておきましょう。
Photoshop形式で保存するには、まずnew File()と記述しPhotoshop保存オプションオブジェクトを作成します。
保存時のファイルパスはnew File()の()内に記述します。
サンプルコード1
1 |
psd_obj = new File("~/sample.psd"); |
ただ、これだけだと保存オプションオブジェクトを作成しただけなので、なにも起こりません。
保存する際は、saveAsメソッドで保存をします。
saveAsメソッドを記述する前に、保存する際の設定(カラープロファイル、注釈、αチャンネルなど)を指定します。
保存時の設定の指定方法は、まず
psdOpt = new PhotoshopSaveOptions();
と記述します。
この記述は決まり文句です。
以下はこのような感じになります。
psdOpt.alphaChannels = true;
psdOpt.annotations = true;
psdOpt.embedColorProfile = true;
psdOpt.layers = true;
psdOpt.spotColors = true;
activeDocument.saveAs(fileObj, psdOpt, true, Extension.LOWERCASE);
psdOpt.ほにゃららの部分はPhotoshop形式保存オプションの設定です。
Photoshop形式保存オプションには以下のプロパティがあります。
- alphaChannels αチャンネル(true:保存する、false:保存しない)
- annotations 注釈(true:あり、false:なし)
- embedColorProfile カラープロファイル(true:埋め込む、false:埋め込まない)
- layers レイヤーを保存(true:する、false:しない)
- spotColors スポットカラー(true:保存する、false:保存しない)
また、saveAsメソッドには4つのパラメータを設定できます。
- 1つ目は保存情報を持ったファイルオブジェクト
- 2つ目は設定したオプション
- 3つ目はコピーを保存するか否か(true:保存する、false:保存しない)
- 4つ目は拡張子の指定
4つ目の拡張子の指定は、以下のようにします。
- Extension.NONE(変更なし)
- Extension.LOWERCASE(小文字)
- Extension.UPPERCASE(大文字)
ちなみに、2番目以降のパラメータは省略できます。
保存時のパスや名前を任意にしたい場合はサンプルコード2のように記述します。
サンプルコード2では、開いているドキュメントと同じディレクトリにsample.psdという名前で保存されるように記述しています。
サンプルコード2
1 2 3 4 5 6 7 8 9 10 11 12 13 |
var file_path = activeDocument.path; var file_name = "sample.psd"; var file_fullname = file_path + "/" + file_name; var psd_obj = new File(file_fullname); var psd_opt = new PhotoshopSaveOptions(); psd_opt.alphaChannels = true; psd_opt.annotations = true; psd_opt.embedColorProfile = false; psd_opt.layers = true; psd_opt.spotColors = false; activeDocument.saveAs(psd_obj, psd_opt, true, Extension.LOWERCASE); |
サプルコード2を解説すると
まず
var file_path = activeDocument.path;
で現在アクティブなドキュメントのパスを取得し、変数「file_path」に代入しています。
var file_name = “sample.psd”;
今回は「sample.psd」という名前にしたいので、名前をfile_nameという変数に入れています。
file_fullname = file_path + “/” + file_name;
パスと、ファイル名をスラッシュでつなげて変数「file_fullname」に代入しています。
psd_obj = new File(file_fullname);
psd_opt = new PhotoshopSaveOptions();
psd_opt.alphaChannels = true;
psd_opt.annotations = true;
psd_opt.embedColorProfile = false;
psd_opt.layers = true;
psd_opt.spotColors = false;
ここで形式保存オプションの設定を指定しています。
activeDocument.saveAs(psd_obj, psd_opt, true, Extension.LOWERCASE);
1つ目のプロパティは保存情報を持ったファイルオブジェクト「psd_obj」を記述します。
2つ目は設定したオプションの情報が入っている「psd_opt」を記述します。
3つ目はコピーを保存するか否か(trueは保存する)を記述します。
4つ目は拡張子の指定を記述します。(Extension.LOWERCASEは小文字)
サンプルコード2の解説は以上になります。
少し複雑な記述をしているので難しく感じるかもしれませんが、わからないことがあればコメント欄に質問してください。
わかる範囲で答えていきます。
恐れ入りますm(__)m
素晴らしいスクリプトでしたので参考にさせていただきたいのですが、
ファイル名をsampleではなく、そのまま変えない場合はどのようなコードを
入力すればよいでしょうか。
教えていただけましたら幸いでございます。
上書き保存ということでしょうか?いくつか方法はありますが、上記のコードを活かすならこんな感じですかね。意図と違ったらごめんなさい