PhotoshopドキュメントをJavaScriptで別名保存する

たまにはアプリケーションに特化したことを書こうのコーナーです(今考えた)。

いわゆる「別名保存」はDocment.saveAs()メソッドを使うんだけど、オプション類をいちいち調べるのが嫌になったのでまとめます。
なお、以下はPhotoshop CS6 Javascript Scripting Reference(リンク先PDF)を信用して書いたものです。ESTK付属のオブジェクトモデルビューアよりずっと使いやすいのでおすすめ。

Document.saveAs() 書式

Document.saveAs(saveIn[, options][, asCopy][, extensionType]);
引数 説明
saveIn File 必須。保存先になるFileオブジェクト。ここで拡張子つけても無視してpsd形式にされる。他の形式にしたい場合はオプションで指定する必要がある。
options varies
(いろいろ)
保存オプション。ファイル形式、および保存時のオプションを指定する。ファイル形式ごとにオブジェクト(クラス)が異なる。詳しくはあとで。
asCopy boolean 複製として保存するかどうか。オプション。
extensionType Extension 拡張子の書式。オプション。

Extension.LOWERCASE 小文字
Extension.NONE 拡張子なし
Extension.UPPERCASE 大文字

保存先Fileオブジェクト

var fileobj = new File("ファイルパス");

とかして作ればいいんじゃないですかね(投げやり)。

保存オプション

オプションは保存形式ごとに別々のクラスが用意されている。ふつうにGUIで保存するときもそうだけど、形式によってオプションがまるで違うからだと思う。
例えばjpg形式なら、

var saveOptions = new JPEGSaveOptions;
saveOptions.embedColorProfile = true;
saveOptions.formatOptions = FormatOptions.STANDARDBASELINE;
saveOptions.quality = 12;
// 他、各プロパティを設定

app.activeDocument.saveAs(fileobj, saveOptions, false, Extension.LOWERCASE)

って感じでオブジェクトを作ってから、saveAs()実行時に引数として渡す。

とりあえず順番にいきましょう。これ使うの?ってのもあるけど。

BMP

BMPSaveOptions

プロパティ 説明
alphaChannels boolean アルファチャンネルを保持するかどうか。たぶん32bitのときだけ。
depth BMPDepthType ビット数。

BMPDepthType.ONE 1bit
BMPDepthType.FOUR 4bit
BMPDepthType.EIGHT 8bit
BMPDepthType.SIXTEEN 16bit
BMPDepthType.TWENTYFOUR 24bit
BMPDepthType.THIRTYTWO 32bit

詳細モードだともっとあるけど略
flipRowOrder boolean 行の順序の反転。osTypeがWindowsのときだけ動作。
osType OperatingSystem ファイル形式。

OperatingSystem.OS2 OS/2
OperatingSystem.WINDOWS Windows
rleCompression boolean RLE圧縮するかどうか。osTypeがWindowsでdepthが4bitか8bitのときだけ動作。
typename string オブジェクトのクラス名。readonly。"BMPSaveOptions"
DCS 1.0

DCS1_SaveOptions

プロパティ 説明
dCS DCSType プレビュー用ファイルの形式。

DCSType.COLORCOMPOSITE カラープレビュー
DCSType.GRAYSCALECOMPOSITE グレースケールプレビュー
DCSType.NOCOMPOSITE プレビューなし
embedColorProfile boolean カラープロファイルを埋め込むかどうか。
encoding SaveEncoding エンコーディング形式。

SaveEncoding.ASCII ASCII
SaveEncoding.BINARY バイナリ
SaveEncoding.JPEGLOW JPEG(低画質)
SaveEncoding.JPEGMEDIUM JPEG(標準画質)
SaveEncoding.JPEGHIGH JPEG(高画質)
SaveEncoding.JPEGMAXIMUM JPEG(最高画質)
halftoneScreen boolean ハーフトーンスクリーンを保持するかどうか。
interpolation boolean プレビューに画像補間方式(バイキュービック)を適用するかどうか。
preview Preview EPSプレビュー形式。

Preview.EIGHTBITTIFF 8bitTIFF
Preview.MACOSEIGHTBIT Mac 8bitTIFF
Preview.MACOSJPEG Mac JPEG
Preview.MACOSMONOCHROME Mac 1bitTIFF(モノクロ)
Preview.MONOCHROMETIFF 1bitTIFF(モノクロ)
Preview.NONE なし
transferFunction boolean トランスファー関数を保持するかどうか。
typename string オブジェクトのクラス名。readonly。"DCS1_SaveOptions"
vectorData boolean ベクターデータを保持するかどうか。
DCS 2.0

DCS 1.0のプロパティに加えて、以下のプロパティがある。typenameは当然"DCS2_SaveOptions"になる。
DCS2_SaveOptions

プロパティ 説明
multiFileDCS boolean カラーチャンネルを複数ファイルとして出力するかどうか。falseで単一ファイルになる。
spotColors boolean 特色チャンネルを保持するかどうか。
EPS

ほとんどDCSとかぶってるけど改めて全部書いておく。
EPSSaveOptions

プロパティ 説明
embedColorProfile boolean カラープロファイルを埋め込むかどうか。
encoding SaveEncoding エンコーディング形式。

SaveEncoding.ASCII ASCII
SaveEncoding.BINARY バイナリ
SaveEncoding.JPEGLOW JPEG(低画質)
SaveEncoding.JPEGMEDIUM JPEG(標準画質)
SaveEncoding.JPEGHIGH JPEG(高画質)
SaveEncoding.JPEGMAXIMUM JPEG(最高画質)
halftoneScreen boolean ハーフトーンスクリーンを保持するかどうか。
interpolation boolean プレビューに画像補間方式(バイキュービック)を適用するかどうか。
preview Preview EPSプレビュー形式。

Preview.EIGHTBITTIFF 8bitTIFF
Preview.MACOSEIGHTBIT Mac 8bitTIFF
Preview.MACOSJPEG Mac JPEG
Preview.MACOSMONOCHROME Mac 1bitTIFF(モノクロ)
Preview.MONOCHROMETIFF 1bitTIFF(モノクロ)
Preview.NONE なし
psColorManagement boolean PostScriptカラーマネジメントを有効にするかどうか。
transferFunction boolean トランスファー関数を保持するかどうか。
transparentWhites boolean 白色部分を透明として扱うかどうか。モノクロ二階調時(document.modeがDocumentMode.BITMAPのとき)のみ有効。
typename string オブジェクトのクラス名。readonly。"EPSSaveOptions"
vectorData boolean ベクターデータを保持するかどうか。
GIF

GIFSaveOptions

プロパティ 説明
colors number 表示色数。
dither Dither ディザ方式。

Dither.DIFFUSION 誤差拡散法
Dither.NOISE ノイズ
Dither.NONE なし
Dither.PATTERN パターン
ditherAmount number ディザの適用量(1〜100)。誤差拡散法の適用時のみ有効。
forced ForcedColors 使用しているかどうかに関わらず強制的にパレットに含む色。
ForcedColors.BLACKWHITE 白黒
ForcedColors.NONE なし
ForcedColors.PRIMARIES レッド、グリーン、ブルー、シアン、マゼンタ、イエロー、黒、白
ForcedColors.WEB Webセーフカラー
interlaced boolean インターレースを有効にするかどうか。
matte MatteType マット。透明部分(不透明度が100%でない箇所)の背景色を塗りつぶす色の設定。transparencyプロパティがtrueの場合は完全な透明部分(不透明度0%の箇所)には適用されない。

MatteType.BACKGROUND 背景色
MatteType.BLACK 黒
MatteType.FOREGROUND 描画色
MatteType.NETSCAPE ネットスケープグレー
MatteType.NONE なし
MatteType.SEMIGRAY 50%グレー
MatteType.WHITE 白
palette PaletteType パレットの設定。

PaletteType.EXACT 使用中の色をすべて割り付ける
PaletteType.LOCALADAPTIVE ローカル(割り付け)
PaletteType.LOCALPERCEPTUAL ローカル(知覚)
PaletteType.LOCALSELECTIVE ローカル(特定)
PaletteType.MACOSPALETTE Mac
PaletteType.MASTERADAPTIVE マスター(割り付け)
PaletteType.MASTERPERCEPTUAL マスター(知覚)
PaletteType.MASTERSELECTIVE マスター(特定)
PaletteType.PREVIOUSPALETTE 前回と同じ
PaletteType.UNIFORM ?
PaletteType.WEBPALETTE Web
PaletteType.WINDOWSPALETTE Windows
preserveExactColors boolean 同一色の保持。ディザの設定が誤差拡散法の場合、カラーテーブルに含まれる色を保護するかどうか。
transparency boolean 透明箇所を維持するかどうか。
typename string オブジェクトのクラス名。readonly。"GIFSaveOptions"
JPEG

JPEGSaveOptions

プロパティ 説明
embedColorProfile boolean カラープロファイルを埋め込むかどうか。
formatOptions FormatOptions JPEGフォーマット。

FormatOptions.OPTIMIZEDBASELINE ベースライン(最適化)
FormatOptions.PROGRESSIVE プログレッシブ
FormatOptions.STANDARDBASELINE ベースライン(標準)
matte MatteType マット。透明部分(不透明度が100%でない箇所)の背景色を塗りつぶす色の設定。

MatteType.BACKGROUND 背景色
MatteType.BLACK 黒
MatteType.FOREGROUND 描画色
MatteType.NETSCAPE ネットスケープグレー
MatteType.NONE なし
MatteType.SEMIGRAY 50%グレー
MatteType.WHITE 白
quality number 画質。1〜12の数値。
scans number プログレッシブ形式のスキャン数(完全に表示されるまでの段階の数)。3〜5の数値。
typename string オブジェクトのクラス名。readonly。"JPEGSaveOptions"
PDF

PDFSaveOptions
多すぎ。プリセット作って適用するのがいいと思う。

プロパティ 説明
alphaChannels boolean アルファチャンネルを保持するかどうか。
annotations boolean 注釈を保持するかどうか。
colorConversion boolean カラー変換するかどうか。
convertToEightBit boolean 16bit画像を8bit画像に変換するかどうか。
description string 保存オプションの説明文。
destinationProfile string 出力先カラープロファイル。文字列で指定。
downgradeColorProfile boolean (非推奨)
downSample PDFResample ダウンサンプル方式。

PDFResample.NONE なし
PDFResample.PDFAVERAGE ダウンサンプル(バイリニア法)
PDFResample.PDFBICUBIC ダウンサンプル(バイキュービック法)
PDFResample.PDFSUBSAMPLE サブサンプル(ニアレストネイバー法)
downSampleSize number 画像ダウンサンプル後の解像度。ppiで指定。
downSampleSizeLimit number 画像ダウンサンプルを行う対象になる解像度(この値を超えたら適用)。ppiで指定。
embedColorProfile boolean カラープロファイルを埋め込むかどうか。
embedFonts boolean (非推奨)
embedThumbnail boolean サムネイルを埋め込むかどうか。
encoding PDFEncoding 画像の圧縮形式。

PDFEncoding.JPEG JPEG(画質を数値で指定可能)
PDFEncoding.JPEG2000HIGH JPEG2000最高
PDFEncoding.JPEG2000LOSSLESS JPEG2000 ロスレス
PDFEncoding.JPEG2000LOW JPEG2000最低
PDFEncoding.JPEG2000MED JPEG2000
PDFEncoding.JPEG2000MEDHIGH JPEG2000
PDFEncoding.JPEG2000MEDLOW JPEG2000
PDFEncoding.JPEGHIGH JPEG最高
PDFEncoding.JPEGLOW JPEG最低
PDFEncoding.JPEGMED JPEG
PDFEncoding.JPEGMEDHIGH JPEG
PDFEncoding.JPEGMEDLOW JPEG
PDFEncoding.NONE なし
PDFEncoding.PDFZIP ZIP8bit
PDFEncoding.PDFZIP4BIT ZIP4bit
interpolation boolean (非推奨)
jpegQuality number 画質。1〜12の数値。encodingプロパティがPDFEncoding.JPEGの時のみ有効。
layers boolean レイヤーを保持するかどうか。
optimizeForWeb boolean Web表示用に最適化するかどうか。
outputCondition string PDF/Xの出力条件。
outputConditionID string PDF/Xの出力条件ID。
PDFCompatibility PDFCompatibility PDFの互換バージョン。

PDFCompatibility.PDF13 1.3
PDFCompatibility.PDF14 1.4
PDFCompatibility.PDF15 1.5
PDFCompatibility.PDF16 1.6
PDFCompatibility.PDF17 1.7
PDFStandard PDFStandard PDF/X規格。

PDFStandard.NONE なし
PDFStandard.PDFX1A2001 PDF/X-1a:2001
PDFStandard.PDFX1A2003 PDF/X-1a:2003
PDFStandard.PDFX32002 PDF/X-3:2002
PDFStandard.PDFX32003 PDF/X-3:2003
PDFStandard.PDFX42008 PDF/X-4:2008
preserveEditing boolean 編集機能を保持するかどうか。
presetFile string PDF書き出しプリセット(名前)。指定すると他のプロパティよりプリセットの設定が優先される。
profileInclusionPolicy boolean プロファイルを埋め込むかどうか。
registryName string PDF/Xのレジストリ名。
spotColors boolean 特色を保持するかどうか。
tileSize nunber 画像の圧縮形式がJPEG2000の場合のタイル数。encodingプロパティがPDFEncoding.JPEG2000の時のみ有効。
transparency boolean (非推奨)
typename string オブジェクトのクラス名。readonly。"PDFSaveOptions"
useOutlines boolean (非推奨)
vectorData boolean (非推奨)
view boolean 保存後にPDFを表示するかどうか。
PSD

PhotoshopSaveOptions

プロパティ 説明
alphaChannels boolean アルファチャンネルを保持するかどうか。
annotations boolean 注釈を保持するかどうか。
embedColorProfile boolean カラープロファイルを埋め込むかどうか。
layers boolean レイヤーを保持するかどうか。
spotColors boolean 特色を保持するかどうか。
typename string オブジェクトのクラス名。readonly。"PhotoshopSaveOptions"
PICTファイル

PICTFileSaveOptions

プロパティ 説明
alphaChannels boolean アルファチャンネルを保持するかどうか。
compression PICTCompression 圧縮形式。

PICTCompression.JPEGHIGHPICT
PICTCompression.JPEGLOWPICT
PICTCompression.JPEGMAXIMUMPICT
PICTCompression.JPEGMEDIUMPICT
PICTCompression.NONE なし
embedColorProfile boolean カラープロファイルを埋め込むかどうか。
resolution PICTBitsPerPixels bit数。

PICTBitsPerPixels.EIGHT
PICTBitsPerPixels.FOUR
PICTBitsPerPixels.SIXTEEN
PICTBitsPerPixels.THIRTYTWO
PICTBitsPerPixels.TWO
typename string オブジェクトのクラス名。readonly。"PICTFileSaveOptions"
PICTリソース

Photoshopでは読み込み専用(書き出せない)。
PICTResourceSaveOptions

プロパティ 説明
alphaChannels boolean アルファチャンネルを保持するかどうか。
compression PICTCompression 圧縮形式。

PICTCompression.JPEGHIGHPICT
PICTCompression.JPEGLOWPICT
PICTCompression.JPEGMAXIMUMPICT
PICTCompression.JPEGMEDIUMPICT
PICTCompression.NONE なし
embedColorProfile boolean カラープロファイルを埋め込むかどうか。
name string PICTリソースの名前。
resolution PICTBitsPerPixels bit数。

PICTBitsPerPixels.EIGHT
PICTBitsPerPixels.FOUR
PICTBitsPerPixels.SIXTEEN
PICTBitsPerPixels.THIRTYTWO
PICTBitsPerPixels.TWO
resourceID number PICTリソースのID。
typename string オブジェクトのクラス名。readonly。"PICTResourceSaveOptions"
PXR

PixarSaveOptions

プロパティ 説明
alphaChannels boolean アルファチャンネルを保持するかどうか。
typename string オブジェクトのクラス名。readonly。"PixarSaveOptions"
PNG

PNGSaveOptions

プロパティ 説明
compression number 圧縮設定。0〜9の数値? デフォルトは0
interlaced boolean インターレースを有効にするかどうか。
typename string オブジェクトのクラス名。readonly。"PNGSaveOptions"
RAW

RawSaveOptions

プロパティ 説明
alphaChannels boolean アルファチャンネルを保持するかどうか。
spotColors boolean 特色を保持するかどうか。
typename string オブジェクトのクラス名。readonly。"RawSaveOptions"
SGIRGB

標準ではインストールされない形式らしい(知らない)。
SGIRGBSaveOptions

プロパティ 説明
alphaChannels boolean アルファチャンネルを保持するかどうか。
spotColors boolean 特色を保持するかどうか。
typename string オブジェクトのクラス名。readonly。"SGIRGBSaveOptions"
TGA(Targa)

TargaSaveOptions

プロパティ 説明
alphaChannels boolean アルファチャンネルを保持するかどうか。
resolution TargaBitsPerPixels 色数。

TargaBitsPerPixels.SIXTEEN 16bit
TargaBitsPerPixels.TWENTYFOUR 24bit
TargaBitsPerPixels.THIRTYTWO 32bit
rleCompression boolean RLE圧縮するかどうか。
typename string オブジェクトのクラス名。readonly。"TargaSaveOptions"
TIFF

TiffSaveOptions

プロパティ 説明
alphaChannels boolean アルファチャンネルを保持するかどうか。
annotations boolean 注釈を保持するかどうか。
byteOrder ByteOrder バイト順序。

ByteOrder.IBM IBM PC
ByteOrder.MACOS Macintosh
embedColorProfile boolean カラープロファイルを埋め込むかどうか。
imageCompression TIFFEncoding 圧縮形式。

TIFFEncoding.JPEG JPEG
TIFFEncoding.NONE なし
TIFFEncoding.TIFFLZW LZW
TIFFEncoding.TIFFZIP ZIP
interleaveChannels boolean ピクセルの順序。trueでインターリーブになる。
jpegQuality number 画質。1〜12の数値。encodingプロパティがPDFEncoding.JPEGの時のみ有効。
layerCompression LayerCompression レイヤーの圧縮形式。layersプロパティがtrueの時のみ有効。

LayerCompression.RLE RLE圧縮
LayerCompression.ZIP ZIP圧縮
layers boolean レイヤーを保持するかどうか。
saveImagePyramid boolean 画像ピラミッドを保存するかどうか。
spotColors boolean 特色を保持するかどうか。
transparency boolean 透明部分を保持するかどうか。
typename string オブジェクトのクラス名。readonly。"TiffSaveOptions"


以上!! つかれたー!!!!