![見出し画像](https://assets.st-note.com/production/uploads/images/70925608/rectangle_large_type_2_b3aa7ecaa772a270c7c36473ae40b02d.png?width=800)
【PhotoshopScript】Document.saveAs()を使って、ファイルをJPEGで保存する
Document.saveAs()を使ってファイルをJPEGで保存するよ。
ドキュメントを読んでやり方を確認する
公式ドキュメントを見ると、
って書いてありますね。
一番左の列がメソッド名と引数の構成、左から二番目の列が引数の型、三番目が戻り値の型(今回は空なので戻り値なし)、一番右が備考です。
つまり、documentオブジェクトにはsaveAsというメソッドがあり、引数は順番に「保存先(File型のオブジェクト)、オプション(説明んとこ見ろよ)、コピーするかどうか(true/falseで)、拡張子のタイプ(Extention型)」を渡せば良いようです。
1:保存したいファイルの、Document型のオブジェクトを用意する
var target = app.activeDocument
とか、
var target = app.Documents.add()
とかで、保存したいドキュメントのオブジェクトを取得します
2:保存先のFileオブジェクトを用意する
var file = new File("hozon\\sakino\\path\\filename.jpg")
ってすればOK。
保存先アドレスを渡してFileオブジェクトの新しいインスタンスを作る。
3:JPEGSaveOptionsを用意する
「詳しくは説明のところ読めよ」って書いてあるところを読むと、保存オプションとして「JPEGSaveOptions」型の引数を用意しないといけないそうです。
ってことで
var options = new JPEGSaveOptions()
ほい用意。ナントカ型の引数を用意しろと言われたらnewで作ればOK。
これだけだと何の設定もできていないので、ドキュメントのリンクを辿ってJPEGSaveOptionsの設定方法を確認します。
こうだって。このうち、typenameはRead-onlyなので設定する必要なし(オブジェクトの種類を示すプロパティだし)。
あとは……どれがどの設定なのかちょっとよくわかんないですね……ということでフォトショのjpeg保存オプション画面を見てみます。
これで分かりそうですね。
そして、
・"scan(スキャン)"は形式オプションがプログレッシブのときだけ指定すればいい
・"matte(マット)"は背景色で、デフォルトはWHITEになっているのでわざわざ指定しなくていい
ということを考えると、指定するのは
options.embedColorProfile = false; // カラープロファイルを埋め込むか
options.formatOptions = FormatOptions.STANDARDBASELINE; // 形式オプション
options.quality = 10; // 画質
の3つで良さそうです。
形式オプションをプログレッシブにしたり、背景色を白以外で保存したい時は、必要に応じてよしなに。
4:コピーとして保存するかどうか
var as_copy = ture;
これでOK。(コピーとして保存しないならfalse)
いちいち変数に入れなくて直接引数にbool値入れても全然いいですが、まあ変数に入れておいた方が後から見たときにわかりやすいか。
5:拡張子のタイプを指定する
Extension型の引数をお渡し、と言われているので、Extension型の説明を見に行きます。
Scripting Constantsの欄にあります。ということで既存の定数値なので、こういう場合は
var extension = Extension.LOWERCASE
と指定してあげればOKです。「型名.列挙値」という書式です。
6:どーん。
var target = app.activeDocument
var file = new File("hozon\\sakino\\path\\filename.jpg")
var options = new JPEGSaveOptions()
options.embedColorProfile = false; // カラープロファイルを埋め込むか
options.formatOptions = FormatOptions.STANDARDBASELINE; // 形式オプション
options.quality = 10; // 画質
var as_copy = ture;
var extension = Extension.LOWERCASE;
target.saveAs(file, options, as_copy, extension);
っと。これで保存完了です。
(念のため、target.saveAs()のところにはtry~catchを仕込んだ方が安全です)
関数として整理(コピペ用)
保存したいドキュメント、保存パス、画質が指定可能な関数です。
オプションのところは必要に応じて書き換えて使って下さい。形式オプションをプログレッシブにする時はjpeg_options.scanも設定するのをお忘れ無く。
function save_as_jpeg(target_document, file_path, quality){
var file_obj = new File(file_path)
var jpeg_options = new JPEGSaveOptions()
jpeg_options.embedColorProfile = false; // カラープロファイルを埋め込むか
jpeg_options.formatOptions = FormatOptions.STANDARDBASELINE; // 形式オプション
jpeg_options.quality = quality; // 画質
var as_copy = ture;
var extension = Extension.LOWERCASE;
target_document.saveAs(file_obj, jpeg_options, as_copy, extension);
}
この記事が気に入ったらサポートをしてみませんか?