Last Update:2006/2/28 PM 9:57

【Photoshop CS自動化作戦】

 このページはPhotoshop CSをJavaScriptによって自動化運用するためのサンプルスクリプトを掲載しています。本当はシリーズ化のような形で書籍として発売されればよかったのですが諸々の都合により企画自体が消滅したため、Webにて公開、掲載しています。
 Photoshop CSはJavaScriptのコアオブジェクト、Adobeファイルオブジェクトに関しては他のAdobeソフトと同じです。つまりInDesign CS、AfterEffects 6.5、Illustrator CSで作成された一部のコードは、そのまま動かす事ができます。Photoshop CS独自部分の機能だけを習得すれば良いと言うメリットもあります。ただし、スクリプト内に日本語を含む場合にはUTF-8 (Unicode)の文字コードにする必要があります。多く利用されているSHIFT JISでは日本語を正しく表示できません。
 このページに掲載されているスクリプトはMacOS X版のPhotoshop CSを基準にしているためWindows版では異なる動作になる可能性があります。あらかじめ、ご了承ください。また、サンプルスクリプトでは特に断り書きがない場合には画像の解像度を72dpiとして処理しています。このため解像度が異なる場合、移動など動作結果が違ってくるものがあります。
 また、掲載されているスクリプトで不具合がある場合はメール、openspc@po.shiojiri.ne.jpまでお願いします。
 リクエストがあれば受け付けています。が、時間的にできない場合があります。ご了承ください。
Photoshop CS2に関してはPhotoshop CS2自動化作戦のページを参照してください。

2005 Copyright 古籏一浩/openspc@po.shiojiri.ne.jp


■準備
 [01]はじめに
 [02]注意事項
 [03]JavaScriptとは?
 [04]アプリケーション/バージョンアップに伴う注意点
 [05]Adobe製品でのJavaScript
 [06]Photoshop CSのJavaScriptで、できることと、できないこと
 [07]Photoshop CSでのJavaScriptの実行方法
 [08]JavaScript実行時の注意点
 [09]ファイルの指定(パス)について
 [10]PhotoshopのJavaScriptでプログラムを作成する前に
 [11]既知のバグ
 [12]より高速に実行させるには

■PhotoshopのJavaScript入門
 [01]プログラムとは何?(すぐに始めたい人&面倒な人は読む必要はありません)
 [02]JavaScriptとは? (すぐに始めたい人&面倒な人は読む必要はありません)
 [03]簡単なプログラムでPhotoshop CSを制御する
 [04]新規にドキュメントを作成する
 [05]文字を表示する
 [06]画像を読み込んで表示する
 [07]よく使われる省略した書き方

■JavaScriptの基本文法
 [01]行の記述
 [02]数値
 [03]文字列
 [04]変数名
 [05]型変換
 [06]特殊文字
 [07]三項演算子
 [08]代入演算子
 [09]演算子
 [10]比較演算子
 [11]文字列演算子
 [12]優先順位
 [13]オブジェクト
 [14]プロパティ/メソッド
 [15]イベント
 [16]リテラル



■基本編
 [01]注釈(コメント)を入れる
 [02]変数を用意する
 [03]変数に数字や文字を入れる
 [04]配列変数を用意する
 [05]配列変数に数字や文字を入れる
 [06]配列のサイズ(個数)を調べる
 [07]基本的な演算を行う
 [08]高度な演算を行う
 [09]小数点以下の処理を行う
 [10]乱数値を発生させる
 [11]文字列を連結する(文字列の加算)
 [12]文字から数値に変換する
 [13]数値から文字に変換する
 [14]文字列の長さを調べる
 [15]特定の文字列があるかどうか調べる
 [16]文字列を抜き出す
 [17]文字をLatin 1コードに変換する
 [18]英文字を大文字、小文字に変換する
 [19]関数を定義する
 [20]条件判断を行う
 [21]複雑な条件判断を行う
 [22]一定回数繰り返し処理を行う
 [23]条件を満たしている間、繰り返し処理を行う
 [24]値によって分岐させる(switch, case)
 [25]例外処理(エラー処理)を行う
 [26]日付処理を行う
 [27]時間処理を行う
 [28]タイムアウト処理を行う



■初級編
 [01]アラートダイアログを表示する
 [02]確認のダイアログを表示する
 [03]入力ダイアログを表示する

□ドキュメント
 [01]新規にドキュメントを作成する
 [02]開かれているドキュメント数を求める
 [03]アクティブになってるドキュメントの名前を求める
 [04]ドキュメントの横幅と縦幅を求める
 [05]ドキュメントを閉じる
 [06]画像のカラーモードを変更する
 [07]画像を統合する
 [08]アクティブになってるドキュメントを指定する
 [09]アクティブになってるレイヤーを指定する
 [10]アクティブになってるチャンネルを指定する
 [11]背景を指定する
 [12]ドキュメントを保存する
 [13]全ての領域を表示する
 [14]ビット数を調べる、設定する
 [15]カラープロファイル名を調べる
 [16]カラープロファイルの種類を調べる
 [17]ドキュメントの保存パスを取得する
 [18]画像のカラーモードを取得する
 [19]ドキュメントの保存パスを調べる
 [20]縦横比を調べる、設定する
 [21]解像度を調べる
 [22]保存されているかどうかを調べる
 [23]バージョンキューのドキュメントかどうか調べる

□キャンバス
 [01]キャンバスサイズを変更する
 [02]画像サイズを変更する
 [03]キャンバスを回転させる
 [04]トリミングする
 [05]上下、左右反転する
 [06]表示されているレイヤーを結合
 [07]画像を複製する
 [08]画像を切り抜く

□レイヤー
 [01]レイヤー数を求める
 [02]レイヤー名を求める
 [03]レイヤー名を設定する
 [04]全てのレイヤーをラスタライズする
 [05]レイヤーが背景かどうか調べる
 [06]特定のレイヤーをアクティブにする
 [07]レイヤーを作成する
 [08]レイヤーにスタイルを指定する
 [09]レイヤーのピクセルのある範囲を求める
 [10]レイヤーの種類を調べる
 [11]レイヤーの不透明度を変える
 [12]レイヤーモードを指定する
 [13]レイヤーをリンクする
 [14]レイヤーを移動させる
 [15]レイヤーを回転させる
 [16]レイヤーを結合する
 [17]レイヤーを削除する
 [18]レイヤーを複製する
 [19]レイヤーをリサイズする
 [20]レイヤー名別にリサイズする
 [21]透明ピクセルをロックする
 [22]特定のレイヤーを見えなくする
 [23]背景をレイヤーにする
 [24]特定の名前のレイヤーが存在するか調べる

□レイヤーセット
 [01]レイヤーセットのロック状態を求める
 [02]レイヤーセットの総数を求める
 [03]全てのレイヤーセットのロックを解除する
 [04]レイヤーセットを追加する
 [05]レイヤーセットの名前を変更する
 [06]レイヤーセット内のレイヤー総数を求める
 [07]レイヤーセットの不透明度を設定する
 [08]レイヤーセットの表示モードを設定する
 [09]レイヤーセットの表示状態を求める
 [10]レイヤーセットを複製する
 [11]レイヤーセット内の画像サイズを変更する
 [12]レイヤーセットを回転させる
 [13]レイヤーセットを移動させる

□チャンネル
 [01]チャンネル数を求める
 [02]チャンネル名を求める
 [03]チャンネルを追加する
 [04]チャンネル名を設定する
 [05]チャンネルを削除する
 [06]チャンネルを複製する
 [07]チャンネルの表示/非表示を設定する
 [08]チャンネルの不透明度を設定する
 [09]チャンネルの色を設定する
 [10]チャンネルの種類を求める/設定する

□選択範囲
 [01]全てを選択する
 [02]座標を指定して選択する
 [03]選択を解除する
 [04]選択範囲を回転させる
 [05]選択範囲の内容を消去(クリア)する
 [06]アルファチャンネルを選択する
 [07]選択範囲内にペーストする
 [08]選択範囲をコピーする
 [09]選択範囲を反転させる
 [10]選択範囲を塗りつぶす
 [11]選択範囲を移動させる
 [12]選択範囲があるかどうか調べる

□カラー
 [01]RGBカラーを指定する
 [02]CMYKカラーを指定する
 [03]グレーカラーを指定する
 [04]HSBカラーを指定する
 [05]Labカラーを指定する
 [06]Webセーフカラーを求める
 [07]CMYKカラー値をRGB値として読み出す

□パス
 [01]パスの総数を求める
 [02]パスの種類を求める

□設定/プレファレンス
 [01]単位を設定する
 [02]単位を調べる
 [03]拡張子の付加設定
 [04]使用するカラーピッカーを設定する
 [05]終了時にビープ音を鳴らすかどうか設定する
 [06]グリッドサイズを取得、設定する
 [07]グリッド形状を取得、設定する
 [08]グリッドの分割数を取得、設定する
 [09]ガイドの形状を取得、設定する
 [10]アイコンを保存するかどうか設定する (Mac)
 [11]各レベルでヒストグラムにキャッシュを使用するかどうか設定する
 [12]キャッシュレベルを取得、設定する
 [13]画像プレビューを保存するかどうかを取得、設定する
 [14]ズーム時にウィンドウサイズを変更するかどうか取得、設定する
 [15]PSD形式の互換性の設定
 [16]使用するRAMの割合の取得、設定
 [17]最大ヒストリー数の取得、設定
 [18]その他カーソルの形状の取得、設定
 [19]ペイントカーソルの形状の取得、設定
 [20]ピクセル倍増の取得、設定
 [21]point/picaの大きさの取得、設定
 [22]最近使用したファイルのリスト数の取得、設定
 [23]ヒストリーログの保存形式の取得、設定
 [24]パレット位置の取得、設定
 [25]日本語テキストオプション表示の取得、設定
 [26]フォント名を英語表記にするかどうかの取得、設定
 [27]スライス番号を表示するかどうかの取得、設定
 [28]ツールヒントを表示するかどうかの取得、設定
 [29]スマート引用符を使用するかどうかの取得、設定
 [30]文字で使用する単位の取得、設定
 [31]追加のプラグインフォルダを使用するかどうかの取得、設定
 [32]誤差拡散法(ディザ)を使用するかどうかの取得、設定
 [33]ヒストリーログを使用するかどうかの取得、設定
 [34]拡張子を小文字にするかどうかの取得、設定
 [35]ツールの変更にSHIFTキーを使用可能にするかどうかの取得、設定
 [36]ビデオアルファを使用するかどうかの取得、設定
 [37]Windows用のサムネールを保存するかどうかの取得、設定

□ファイル/フォルダオブジェクト
 [01]ファイルを開く
 [02]ファイル内容を全部読み込む
 [03]最初の5文字だけ読み込む
 [04]1行読み込む
 [05]1文字読み込む
 [06]1文字読み込み文字コードを表示する
 [07]ファイルに文字を書き込む
 [08]ファイルタイプ(種類)を調べる
 [09]ファイルポインタの位置を調べる
 [10]ファイルポインタの位置を指定する
 [11]ファイル保存ダイアログを表示する
 [12]ファイル選択ダイアログを表示する
 [13]ファイルのバイト数を求める
 [14]ファイルの行数を求める
 [15]改行コードの数を調べる
 [16]ファイルの終わりかどうか調べる
 [17]ファイルのエンコードの種類を調べる
 [18]ファイルをコピーする
 [19]ファイル名を変更する
 [20]ファイルを削除する
 [21]ファイルが存在するかどうか調べる
 [22]ファイルの作成日/修正日を調べる
 [23]ファイル名を調べる
 [24]ファイルのパスを調べる
 [25]フォルダ選択ダイアログを表示する
 [26]フォルダオブジェクトを作成する
 [27]フォルダが存在するかどうか調べる
 [28]フォルダの作成日/修正日を調べる
 [29]フォルダのパスを調べる
 [30]フォルダを作成する
 [31]フォルダ名を変更する
 [32]フォルダを削除する
 [33]フォルダ内のファイル一覧を取得する

□ファイル
 [01]BMP形式で保存する
 [02]EPS形式で保存する
 [03]GIF形式で保存する
 [04]JPEG形式で保存する
 [05]PDF形式で保存する
 [06]Pixar形式で保存する
 [07]PNG形式で保存する
 [08]Photoshop形式で保存する
 [09]RAW形式で保存する
 [10]Targa形式で保存する
 [11]TIFF形式で保存する
 [12]PICT形式で保存する
 [13]EPSファイルを開く
 [14]PDFファイルを開く
 [15]RAWファイルを開く


■中級編
 [01]全てのドキュメントを保存せずに閉じる

□レイヤー
 [01]レイヤー名をすべてテキストファイルとして保存する
 [02]レイヤーセット名をすべてテキストファイルとして保存する
 [03]レイヤーセット内に含まれるレイヤー名も含めてすべてテキストファイルとして保存する
 [04]テキストファイルに設定されたレイヤー名に従ってレイヤー名を全て設定する
 [05]フォルダ内にある全てのPSD形式のファイルを開いてレイヤー名を再設定する

□正規表現
 [01]該当する文字列があるかどうか全レイヤーに渡って調べる
 [02]該当する文字列があるかどうか全ドキュメント、全レイヤーに渡って調べる
 [03]全レイヤー内に特定の文字があるかどうか調べ確認しながら置換させる

□GUI(グラフィカルユーザーインターフェース)
 [01]ダイアログを作成する
 [02]OKボタンを作成する
 [03]ボタンを作成する
 [04]パネルを作成する
 [05]固定テキストを作成する
 [06]編集可能なテキストを作成する
 [07]テキスト位置を指定する
 [08]ラジオボタンを作成する
 [09]チェックボックスを作成する
 [10]スクロールバーを作成する
 [11]スライダーを作成する
 [12]イベントを定義する
 [13]スライダーの値をリアルタイムに表示する


■上級編
 [01]連番ファイル名に対応したテキストレイヤーを作成する
 [02]連番ファイル名に対応したテキストレイヤーを作成する(2)
 [03]不要なダイアログを表示しないようにする
 [04]大量のファイルをαチャンネルで切り抜く

□デバッガ
 [01]デバッガを起動する
 [02]デバッガのレベルを指定する
 [03]ブレークポイントを指定する
 [04]デバッガのバージョンを調べる
 [05]エラー情報
 [06]OS名を取得する
 [07]文字を表示する
 [08]ガーベッジコレクションを行う


■ベンチマーク(速度テスト)
 [01]シリアルサーチと正規表現(文字列の末尾にマッチ)
 [02]シリアルサーチと正規表現(文字列の最初にマッチ)
 [03]整数値代入と小数値代入
 [04]整数値代入と文字列代入
 [05]関数未使用と関数使用



■リンク
 Adobe Studio Exchange

2005 Copyright 古籏一浩/openspc@po.shiojiri.ne.jp