前回の記事 の延長線として、jsxを使ってpngで保存する方法
環境
Adobe Photoshop バージョン : 20.0.4 20190227.r.76 2019/02/27: 1205725 x64
書き方
いくつかやり方はあるが、今回紹介するのは exportDocument
こちらのメソッドは下記の3つを指定する。
- 保存先
- 保存方法(基本は1択)
- 保存のオプション情報
// 保存をするPhotoShopのファイルを取得する // 今回は現在開いているドキュメントを取得する var doc = app.activeDocument; // Fileクラスで保存場所情報を作る var saveInfo = new File("/Users/user_name/test.png"); // オプション情報を設定する // 保存形式がSAVEFORWEBなのでExportOptionsSaveForWebをnew var options = new ExportOptionsSaveForWeb(); // 保存するファイルの形式を指定 options.format = SaveDocumentType.PNG; doc.exportDocument(saveInfo, ExportType.SAVEFORWEB, options);
オプションの種類
options
で様々な設定ができる。
プロパティ名 | 値の型 | 説明 |
---|---|---|
blur | number | ぼかしをかけます(初期値は 0.0 ) |
colorReduciton | ColorReductionType | 減色方法。選べる種類はドキュメント参照のこと(デフォルトは ColorReductionType.SELECTIVE ) |
colors | number | パレットの色数(初期値は 256 ) |
dither | Dither | ディザ設定。選べる種類はドキュメント参照のこと(初期値は Dither.DIFFUSION ) |
ditherAmount | number | ディザの設定量(初期値は 100 、 Dither.DIFFUSION のときのみ有効) |
format | SaveDocumentType | pngやjpgなどのファイル保存形式。。(初期値は SaveDocumentType.COMPUSERVEGIF 。選べる定数は COMPUSERVEGIF PNG PNG JPEG BMP のみ ) |
includeProfile | boolean | trueのときはカラープロファイルを埋め込む(初期値は false ) |
interlaced | boolean | trueのときはインタレース有効(初期値は false ) |
lossy | number | 不可逆圧縮の値(初期値は 0 ) |
matteColor | RGBColor | 透明領域のマットカラー、RGBColorオブジェクトをつくって指定する |
optimized | boolean | trueのときは最適化をかけて小さくする(ドキュメント曰く互換性の低いファイルとなる)(初期値は false , formatが JPEG のときのみ有効 ) |
PNG8 | boolean | trueのときはPNGの形式が8bit,falseのときは24bit(初期値は true , formatが PNG のときのみ有効 ) |
quality | number(0〜100) | 画質のクオリティのパーセンテージ値(初期値は 60 ) |
transparency | boolean | 透過情報を有効にするか(初期値は true ) |
transparencyAmount | number | 透明度ディザ量(初期値は 100 , transparencyがtrue のとき飲む有効) |
transparencyDither | Dither | 透明度ディザ設定。選べる種類はドキュメント参照のこと(初期値は Dither.NONE ) |
webSnap | number | Webパレットで近しい色を許容する設定量、Webスナップ(初期値は 0 ) |
Optionの値指定例
元画像は以下
Photo by John-Mark Smith on Unsplash
options.colors = 1;
色数が全然ない
options.webSnap = 100;
カラーパレットが減るのでベタ塗りのような画像になる
注意点
かなりスペックの高いPCでも1枚の画像を保存するのに1秒前後はかかる。もしバッチ処理などをする場合はそこを加味して実行すること。