コンテンツにスキップ

PSD

擬似コードによるマニュアル

PSDファイルストレージ機能 以下のパス名でPSDファイルのレイヤ画像を直接ファイルとしてロードできます

psd://PSDファイル名/root/フォルダ名/.../レイヤ名.bmp psd://PSDファイル名/id/レイヤID.bmp

・PSDファイル名はベース名のみで小文字で正規化されます ・フォルダ名、レイヤ名は全て小文字で正規化されて含まれる"/" は "_" に置換されます ・名前が重複する場合は後にあるものが優先になります

メンバー一覧

プロパティ

メソッド


width

プロパティ \ アクセス: r

解説

画像の基本プロパティ


height

プロパティ \ アクセス: r

解説

画像縦幅


channels

プロパティ \ アクセス: r

解説

チャンネル数


depth

プロパティ \ アクセス: r

解説

1チャンネルあたりのビット数(1/8/16/32)


color_mode

プロパティ \ アクセス: r

解説

カラーモード


layer_count

プロパティ \ アクセス: r

解説

レイヤ数


hresolution

プロパティ \ アクセス: r

解説

水平解像度(dpi, 既定72, image resource 1005)


vresolution

プロパティ \ アクセス: r

解説

垂直解像度(dpi, 既定72)


merged_alpha

プロパティ \ アクセス: r

解説

合成済み画像にアルファチャンネルが含まれるか


load

メソッド

引数

引数 既定値 説明
filename   ファイル名

戻り値

ロードに成功したら true

解説

PSD画像のロード


loadOctet

メソッド

引数

引数 既定値 説明
data   PSD ファイル全体を格納した octet

戻り値

ロードに成功したら true

解説

octet に入った PSD データをロードする。

バイト列は内部バッファへコピーされるので、呼び出し後に octet を破棄しても かまわない。ファイル名を持たないため psd:// ストレージへは登録されない。


clear

メソッド

解説

保持しているデータを明示的に破棄する。

吉里吉里のオブジェクト寿命は GC 依存なので、大きな PSD を掴んだままに したくないときに呼ぶ。以後の参照系は "no data" 例外になる。


assignAutoIds

メソッド

引数

引数 既定値 説明
base_id 0 割り付けID最小番号-1(※既存のいずれかのレイヤIDがこれより大きかったらその値が利用される)

戻り値

IDを設定したレイヤの枚数

解説

LayerIDが未設定のレイヤに対してID番号を自動割り付け(base_id+1からlayer_no順に)

Photoshop互換系のpsd保存ツールではレイヤIDが割り付けられないケースがあるため,psd://~/id/ が正しくロードできない問題がある 基本的にはload直後に呼ぶことを推奨


getLayerType

メソッド

引数

引数 既定値 説明
no   レイヤ番号

戻り値

レイヤ種別

解説

レイヤ種別の取得


getLayerName

メソッド

引数

引数 既定値 説明
no   レイヤ番号

戻り値

レイヤ名称

解説

レイヤの名前の取得


getLayerInfo

メソッド

引数

引数 既定値 説明
no   レイヤ番号

戻り値

レイヤ情報がはいった辞書 辞書の内容 layer_type レイヤ種別 top 上座標 left 左座標 bottom 底座標 right 右座標 width 横幅 height 縦幅 blend_mode 合成モード(blend_mode_*。未知のモードは blend_mode_invalid) blend_mode_key PSD 上の生の合成モードキー(4文字。3文字キーは末尾に空白が付く ことに注意 "mul " 等)。未知モードもそのまま得られるので、 読んだ値をそのまま書き戻すなら setLayerBlendMode にこれを渡す opacity 不透明度 fill_opacity 塗りの不透明度 visible 表示状態 name レイヤ名 layer_id レイヤID group_layer_id 親レイヤID parent_index 親フォルダのレイヤ番号(トップレベルは -1)。layer_id は PSD に よっては未設定(-1)なので、階層を組むならこちらが確実。 構造編集(deleteLayer/moveLayer/duplicateLayer/addLayer 等)の あとも再計算される type 合成モード(吉里吉里の対応モード) clipping クリッピングマスクの対象か? mask レイヤマスクを持っているかどうか? mask_params マスクパラメータ(density/feather)。マスクを持ちパラメータ ブロックが実在するレイヤのみ存在。指定された項目だけ持つ %[ user_density: // ユーザーマスク濃度 0..255 user_feather: // ユーザーマスクぼかし(px) vector_density: // ベクタマスク濃度 0..255 vector_feather: // ベクタマスクぼかし(px) ] layer_comp レイヤーカンプ情報(カンプIDをキーとした辞書) %[ : [ id, // カンプID(getLayerComp() を参照してください) offset_x, // レイヤのXオフセット offset_y, // レイヤのYオフセット enable, // 表示状態フラグ ],... ] text テキストレイヤ情報(テキストレイヤ layer_type==layer_type_text のときのみ存在。 それ以外のレイヤではキー自体が存在しない) %[ text: // 本文全体(改行は復帰文字 CR) orientation: // "horizontal" または "vertical"(縦書き) justification: // 先頭段落の行揃え 0=左 1=右 2=中央 transform: // アフィン変換 [ xx, xy, yx, yy, tx, ty ] (tx,ty=平行移動) runs: [ // 文字スタイルのラン配列(本文の並び順) %[ length: // 適用文字数(UTF-16 コードユニット。絵文字等サロゲートは2) font: // 解決済みフォント名 size_px: // フォントサイズ(pt) color: // RGBA 各 0..1 の配列 [ r, g, b, a ] (未指定なら存在しない) tracking: // トラッキング(字送り, 1/1000 em) kerning: // 手動カーニング auto_kerning: // 自動カーニング(メトリクス/オプティカル)有効か bold: // 疑似ボールド(FauxBold) italic: // 疑似イタリック(FauxItalic) underline: // 下線(Underline) ],... ] paragraphs: [ // 段落別の行揃え(box text で段落ごとに揃えが変わる用) %[ length: // 段落の文字数(UTF-16 コードユニット) justification: // 行揃え 0=左 1=右 2=中央 ],... ] ] 以下 additional information (※詳細はPSD仕様書を参照のこと) obsolete transparency_protected pixel_data_irrelevant

解説

レイヤの情報の取得


getLayerData

メソッド

引数

引数 既定値 説明
layer   読み出し先レイヤ
no   レイヤ番号
layer_type が layer_type_normal の場合のみ読み込みできます
イメージとマスクを合成した状態で読み出します。
データ内容のほか以下のプロパティが自動的にレイヤに設定されます
left 左座標
top 上座標
width 横幅
height 縦幅
type 合成モード
opacity 不透明度
fill_opacity 塗りの不透明度
visible 表示状態
imageLeft 0になります
imageTop 0になります
imageWidth width になります
imageHeight height になります
name name が設定されます

解説

レイヤデータの読み出し


getLayerDataRaw

メソッド

引数

引数 既定値 説明
layer   読み出し先レイヤ
no   レイヤ番号
layer_type が layer_type_normal の場合のみ読み込みできます
イメージのみを読み出します。
データ内容のほか以下のプロパティが自動的にレイヤに設定されます
left 左座標
top 上座標
width 横幅
height 縦幅
type 合成モード
opacity 不透明度
fill_opacity 塗りの不透明度
visible 表示状態
imageLeft 0になります
imageTop 0になります
imageWidth width になります
imageHeight height になります
name name が設定されます

解説

レイヤデータの読み出し


getLayerDataMask

メソッド

引数

引数 既定値 説明
layer   読み出し先レイヤ
no   レイヤ番号
layer_type が layer_type_normal の場合のみ読み込みできます
マスクのみを読み出します。
マスクのイメージサイズが0でdefualtMaskColorのみが設定されているケースでは、
「レイヤサイズを0には設定できない」と言う吉里吉里の制限を回避するため、
(0,0)-(1,1)の最小サイズのレイヤをダミーで作り、defaultMaskColorでfillして返します。
データ内容のほか以下のプロパティが自動的にレイヤに設定されます
left 左座標
top 上座標
width 横幅
height 縦幅
type 合成モード
opacity 不透明度
fill_opacity 塗りの不透明度
visible 表示状態
imageLeft 0になります
imageTop 0になります
imageWidth width になります
imageHeight height になります
name name が設定されます
defaultMaskColor 取得領域外のマスクカラー(常に0か255のどちらか)

解説

レイヤデータの読み出し


getSlices

メソッド

戻り値

スライス情報辞書 %[ top, left, bottom, right, slices:[ %[ id, group_id, left, top, bottom, right ], ... ] ] スライス情報がない場合は void を返す スライスの一番最後は全スライスを含むサイズのスライスのようです

解説

スライスデータの読み出し


getGuides

メソッド

戻り値

ガイド情報辞書 %[ vertical:[ x1, x2, ... ], horizontal:[ y1, y2, ... ] ] ガイド情報がない場合は void を返す

解説

ガイドデータの読み出し


getBlend

メソッド

引数

引数 既定値 説明
layer   格納先レイヤ

戻り値

取得に成功したら true

解説

合成結果の取得。

ライブラリ中で合成を行うわけではなく、PSDに保存された合成結果を読み出します。 保存方法によってはこの画像は存在しない可能性があります。 また、レイヤが存在しないカラーモード(2値、インデックスカラー)の場合には 画像データはこのメソッドで取得する必要があります。


getLayerComp

メソッド

戻り値

ガイド情報辞書 %[ last_applied_id, // Photoshp上で最後に適用状態だったid comps:[id, // カンプID record_visibility, // 表示/非表示を記録しているか record_position, // 位置を記録しているか record_appearance, // 外観(レイヤーエフェクト)を記録しているか name, // カンプ名 comment, // コメント ],... ] カンプ情報がない場合は void を返す

・record_xxx フラグが立っていな場合は最後に適用したカンプ(last_applied_id ではなく プログラムで最後に適用したカンプ)の状態を引き継ぎます ・カンプIDに対応した各レイヤーごとの表示状態情報は、レイヤー情報の layer_comp プロパティにカンプIDをキーとした辞書に格納してあります。

解説

レイヤーカンプデータの読み出し


getLayerMask

メソッド

引数

引数 既定値 説明
no   レイヤ番号

戻り値

%[ top:, left:, bottom:, right:, // マスク矩形 width:, height:, default_color: // マスク領域外の値 0..255 flags: // 生のフラグバイト relative: // 位置がレイヤ相対か(bit0) disabled: // マスクが無効か(bit1) inverted: // 反転(bit2、廃止仕様) from_render: // 他データのレンダリング由来か(bit3) has_parameters: // density/feather ブロックを持つか(bit4) user_density: // ユーザーマスク濃度 0..255(無ければキー自体なし) user_feather: // ユーザーマスクぼかし(px、同上) vector_density: // ベクタマスク濃度(同上) vector_feather: // ベクタマスクぼかし(同上) real: %[ // real/user mask (無ければキー自体なし) flags:, background:, top:, left:, bottom:, right:, // enclosing 矩形 ] ] マスクを持たない場合は void

解説

レイヤマスクの詳細を取得する

======================================================================== 参照系メタデータ getLayerInfo() には載せていない詳細情報を個別に取り出す口。 該当データを持たない場合はいずれも void を返す(例外にはしない)。 ========================================================================


getLayerBlendingRanges

メソッド

引数

引数 既定値 説明
no   レイヤ番号

戻り値

%[ gray: %[ source:, dest: ], channels: [ %[ source:, dest: ],... ] ] ブレンド範囲ブロックが無い場合は void

解説

レイヤのブレンド範囲を取得する。source/dest は 32bit の生値で、

上下 16bit に黒側/白側の範囲が詰まっている(詳細は PSD 仕様書を参照)。


getLayerSheetColor

メソッド

引数

引数 既定値 説明
no   レイヤ番号

戻り値

%[ index: // 0..11 name: // "none" "red" "orange" "yellow" "green" "blue" // "violet" "gray" "seafoam" "indigo" "magenta" "fuschia" ] lclr ブロックが無い場合は void (index 0/"none" は「明示的にラベル無し」なので void とは区別される)

解説

レイヤパネルの色ラベル('lclr')を取得する


getLayerInfoKeys

メソッド

引数

引数 既定値 説明
no   レイヤ番号

戻り値

キー文字列(4文字)の配列

解説

レイヤが持つ追加レイヤ情報ブロックの 4CC キー一覧を取得する。

getLayerDescriptor / getLayerDescriptorBytes に渡せるキーの調査用。


getLayerDescriptor

メソッド

引数

引数 既定値 説明
no   レイヤ番号
key   4文字のキー("lfx2" 等)
skip -1 ディスクリプタ本体前のバージョン接頭バイト数。
-1 で既知キー(lfx2/SoCo/GdFl/PtFl/SoLd/SoLE/vstk/CgEd/vscg/vogk)
は自動判定、それ以外は 0。既定 -1

戻り値

辞書。キーが無い・解析できない場合は void

解説

追加レイヤ情報ブロックを Photoshop ディスクリプタとして辞書化する。

型に応じて以下へ変換される: 整数/実数 → 数値 真偽 → 1/0 文字列 → 文字列 UnitFloat → %[ value:, unit: ] unit は "points" "millimeters" "angle" "density" "distance" "none" "percent" "pixels" のいずれか Enumerated → %[ type:, value: ] List → 配列 Descriptor → 辞書(入れ子) RawData → octet Class/Alias → 文字列 Reference → void


getLayerDescriptorBytes

メソッド

引数

引数 既定値 説明
no   レイヤ番号
key   4文字のキー

戻り値

octet。キーが無い場合は void

解説

追加レイヤ情報ブロックの生バイトを取得する


getLayerEffects

メソッド

引数

引数 既定値 説明
no   レイヤ番号

戻り値

辞書。効果が無い場合は void

解説

レイヤ効果('lfx2')のディスクリプタ辞書を取得する。

ドロップシャドウ/光彩/オーバーレイ/境界線/ベベル等が入れ子の辞書で入る。 getLayerDescriptor(no, "lfx2") と同じ。


getLayerFill

メソッド

引数

引数 既定値 説明
no   レイヤ番号

戻り値

%[ type: // "solid" / "gradient" / "pattern" data: // ディスクリプタ辞書 ] 塗りつぶしレイヤでない場合は void

解説

塗りつぶしレイヤの内容('SoCo'単色/'GdFl'グラデーション/'PtFl'パターン)を

取得する


getColorTable

メソッド

戻り値

%[ valid_count: // 有効なエントリ数 transparency_index: // 透明色インデックス(-1 で無し) colors: [ 0xAARRGGBB, ... ] // 常に 256 エントリ ] カラーテーブルが無い場合は void

解説

カラーテーブル(インデックスカラー文書のパレット)を取得する


getGlobalLayerMask

メソッド

戻り値

%[ overlay_color_space:, color: [ c1, c2, c3, c4 ], opacity: // 0..100 kind: // 0=反転 / 1=全マスク / 128=レイヤ毎 ] ブロックが空/不在の場合は void

解説

global layer mask info(マスク表示用のオーバーレイ色)を取得する


getImageResourceIds

メソッド

戻り値

ID(整数)の配列

解説

文書が持つイメージリソースの ID 一覧を取得する


getImageResource

メソッド

引数

引数 既定値 説明
id   リソースID(1039=ICCプロファイル, 1058=EXIF, 1060=XMP,
1036/1033=サムネイル, 1005=解像度, 1032=グリッド/ガイド 等)

戻り値

octet。該当リソースが無い場合は void

解説

イメージリソースの生バイトを取得する。デコードは呼び出し側の責任。


getICCProfile

メソッド

解説

ICC プロファイル(リソース 1039)の生バイト。無ければ void


getEXIF

メソッド

解説

EXIF(リソース 1058)の生バイト。無ければ void


getXMP

メソッド

戻り値

文字列。無ければ void

解説

XMP パケット(リソース 1060)を文字列で取得する。中身は UTF-8 の XML。

不正な UTF-8 が入っている可能性を考えるなら getImageResource(1060) で 生バイトを取ること。


getThumbnail

メソッド

戻り値

%[ format: // "jpeg"(JFIF JPEG) または "raw" width:, height:, bits: // 1ピクセルあたりのビット数 resource_id: // 1036 または 1033 data: // ペイロードの octet(28バイトのヘッダを除いたもの) ] サムネイルが無い場合は void

解説

埋め込みサムネイルを取得する(リソース 1036=RGB順 / 旧 1033=BGR順)


save

メソッド

引数

引数 既定値 説明
filename   保存先ファイル名(ローカルパス)

戻り値

成功したら true

解説

現在の内容を PSD ファイルとして書き出す

======================================================================== 編集系 API (psdparse v0.7+ の編集機能。psdfile.dll から利用可能) いずれも in-memory の内容を操作するだけで、実際のバイト列は save() 時に 再構築される。画素/レイヤ追加系は 8bit RGB 文書のみ対応。編集後は psd:// ストレージのレイヤ検索キャッシュが破棄される。 注意: 合成画像(getBlend の元)は編集しても古いままになる (Photoshop で開いて再合成するまで反映されない)。テキストの字形も 再描画されないので、本文/書式/配置の変更が絵に出るのは Photoshop で 開き直したとき。 ========================================================================


createBlank

メソッド

引数

引数 既定値 説明
width  
height   高さ
mode color_mode_rgb カラーモード(color_mode_、既定 color_mode_rgb)。
現状 color_mode_rgb 以外は false を返します*
(新規作成に対応しているのは 8bit RGB のみ)。
画素編集系(addLayer/setLayerPixels/setMergedImage)も同様に
8bit RGB 文書のみ対応です

戻り値

成功したら true

解説

この PSD を空の 8bit 文書(白の合成画像)として初期化する。

以後 addLayer(...) でレイヤを足して save() できる。


deleteLayer

メソッド

引数

引数 既定値 説明
index   レイヤ番号

戻り値

成功したら true(範囲外で false)

解説

レイヤを 1 枚削除する


moveLayer

メソッド

引数

引数 既定値 説明
from   移動元レイヤ番号
to   移動先(削除後リストでの挿入位置)

戻り値

成功したら true

解説

レイヤを from から to へ移動する


groupSpan

メソッド

引数

引数 既定値 説明
index   レイヤ番号

戻り値

%[ start: // 塊の先頭レイヤ番号 count: // 塊の枚数 ] 範囲外なら void

解説

レイヤがレイヤ一覧上で占める「塊」を返す。

フォルダ(layer_type_folder)の場合は対応する区切り(layer_type_hidden)から 自分自身までの範囲(入れ子も内側に含む)、それ以外は自分自身 1 枚だけ。 moveLayerRange と組み合わせてフォルダごと動かすのに使う。


moveLayerSibling

メソッド

引数

引数 既定値 説明
index   レイヤ番号
up true true でレイヤパネル表示上ひとつ上(レイヤ一覧では後ろ)へ。
既定 true

戻り値

移動後のレイヤ番号。端まで来ていて動かせない場合や範囲外は -1

解説

レイヤを同じ階層の隣の兄弟と入れ替える。

フォルダは区切り+中身をまとめた塊として動き、隣がフォルダならその塊ごと 飛び越える。階層をまたぐ移動はしない。


moveLayerRange

メソッド

引数

引数 既定値 説明
from   移動元先頭レイヤ番号
count   移動する枚数
to   移動先(「取り除く前」のレイヤ一覧でのインデックス)

戻り値

成功したら true(引数が不正なら false)

解説

レイヤ一覧上の [from, from+count) の範囲をまとめて to の位置へ動かす

(低水準。フォルダごと動かすなら groupSpan の戻り値を渡す)。


duplicateLayer

メソッド

引数

引数 既定値 説明
index   レイヤ番号

戻り値

複製の新レイヤ番号(失敗で -1)

解説

レイヤを複製する(元の直後に挿入)


copyLayerFrom

メソッド

引数

引数 既定値 説明
src   コピー元 PSD インスタンス
srcIndex   コピー元レイヤ番号
destIndex   挿入位置(負値で末尾)

戻り値

新レイヤ番号(失敗で -1)

解説

別の PSD インスタンスからレイヤをコピー挿入する。

カラーモード/ビット深度が一致している必要がある。コピー元 PSD は この PSD の save() が終わるまで生存している必要がある。


setLayerName

メソッド

引数

引数 既定値 説明
index   レイヤ番号
name   新しい名前

戻り値

成功したら true

解説

レイヤを改名する(pascal 名 + luni 名の両方を更新)


setFillOpacity

メソッド

引数

引数 既定値 説明
index   レイヤ番号
opacity   0..255

戻り値

成功したら true

解説

塗り不透明度(fill opacity)を編集する


setLayerOpacity

メソッド

引数

引数 既定値 説明
index   レイヤ番号
opacity   0..255(範囲外はクランプされる)

戻り値

成功したら true(範囲外のレイヤ番号で false)

解説

不透明度を編集する


setLayerClipping

メソッド

引数

引数 既定値 説明
index   レイヤ番号
clipping   0=base / 1=non-base(クリッピング対象)

戻り値

成功したら true

解説

クリッピングマスクの対象かどうかを編集する


setLayerVisible

メソッド

引数

引数 既定値 説明
index   レイヤ番号
visible   表示するか

戻り値

成功したら true

解説

表示状態を編集する


setLayerBlendMode

メソッド

引数

引数 既定値 説明
index   レイヤ番号
mode   blend_mode_* 定数、または PSD 上の生のキー文字列(4文字。
"norm" "mul " "scrn" など。3文字キーは末尾の空白が必須)。
getLayerInfo().blend_mode_key の値をそのまま渡せる

戻り値

成功したら true

解説

合成モードを編集する


setLayerEffects

メソッド

引数

引数 既定値 説明
index   レイヤ番号
changes   部分辞書

解説

レイヤ効果('lfx2')の値を編集する。

changes は getLayerEffects() と同じ形の「部分辞書」で、指定した葉の値だけが 上書きされる。構造/クラスID/型/キー順はそのまま保たれ、指定しなかった項目や ディスクリプタ側に存在しないキーは無視される(そのためバイト一致が保たれる)。 値の与え方: 数値/文字列/真偽 → そのまま UnitFloat → %[ value: ] か生の数値(単位は変更しない) Enumerated → %[ type:, value: ] か値だけの文字列 List → 配列(先頭から既存要素数までを順に上書き) Descriptor → 辞書(入れ子でマージ) lfx2 ブロックを持たないレイヤの場合は例外。


setLayerDescriptor

メソッド

引数

引数 既定値 説明
index   レイヤ番号
key   4文字のキー
changes   部分辞書
skip -1 ディスクリプタ本体前のバージョン接頭バイト数
(-1 で既知キーは自動判定。既定 -1)

解説

任意の追加レイヤ情報キーに対する setLayerEffects の一般版

(塗りつぶしレイヤの 'SoCo'/'GdFl'/'PtFl' 等)。 該当キーを持たないレイヤの場合は例外。


setMaskDisabled

メソッド

引数

引数 既定値 説明
index   レイヤ番号
disabled   マスクを無効にするか

戻り値

成功したら true

解説

マスク無効フラグを編集する(マスクを持つレイヤのみ)


setMaskDensity

メソッド

引数

引数 既定値 説明
index   レイヤ番号
density   0..255

戻り値

成功したら true

解説

ユーザーマスク濃度を編集する(マスクを持つレイヤのみ)


setMaskFeather

メソッド

引数

引数 既定値 説明
index   レイヤ番号
feather   ぼかし半径(px)

戻り値

成功したら true

解説

ユーザーマスクぼかしを編集する(マスクを持つレイヤのみ)


setMaskDefaultColor

メソッド

引数

引数 既定値 説明
index   レイヤ番号
color   0..255

戻り値

成功したら true

解説

マスク既定色を編集する(マスクを持つレイヤのみ)


setLayerPixels

メソッド

引数

引数 既定値 説明
index   レイヤ番号
layer   画素供給元 Layer

戻り値

成功したら true

解説

既存レイヤの画素を Layer オブジェクトの内容で差し替える。

Layer の imageWidth×imageHeight・BGRA を取り込む。left/top は保持し width/height は更新される。8bit RGB 文書のみ。


setLayerMaskPixels

メソッド

引数

引数 既定値 説明
index   レイヤ番号
layer   マスク供給元 Layer
top   マスク上端
left   マスク左端

戻り値

成功したら true

解説

レイヤのマスク画素を Layer オブジェクトの内容(B 成分をグレーとして使用)で

差し替える。マスク矩形も (top,left,imageWidth,imageHeight) に設定する。 マスクが無ければ新規作成する。8bit 文書のみ。


addLayer

メソッド

引数

引数 既定値 説明
name   レイヤ名
left   左座標
top   上座標
layer   画素供給元 Layer
blendMode blend_mode_normal 合成モード(blend_mode_*、既定 blend_mode_normal)
opacity 255 不透明度 0..255(既定 255)
destIndex -1 挿入位置(負値で末尾)

戻り値

新レイヤ番号(失敗で -1)

解説

新規画像レイヤを追加する。Layer の imageWidth×imageHeight・BGRA を取り込む。

8bit RGB 文書のみ。


setMergedImage

メソッド

引数

引数 既定値 説明
layer   画素供給元 Layer

戻り値

成功したら true

解説

合成済み画像(プレビュー/getBlend の元)を Layer の内容で差し替える。

Layer のサイズは canvas サイズ(width×height)と一致している必要がある。 8bit RGB 文書のみ。


setLayerText

メソッド

引数

引数 既定値 説明
index   レイヤ番号
text   新しい本文(改行は \r)

解説

テキストレイヤの本文を差し替える(スタイルは先頭ランに畳まれる)。

テキストレイヤ以外や TySh ブロックが無い場合は例外。


setLayerRunStyle

メソッド

引数

引数 既定値 説明
index   レイヤ番号
runIndex   ラン番号
style   スタイル辞書

解説

テキストレイヤの runIndex 番目のラン(getLayerInfo().text.runs に対応)の

スタイルを編集する。style 辞書のうち指定されたキーだけ上書きする。 %[ font: // フォント名。文書のフォントセットに無ければ追加される // (getLayerFonts() が返す PostScript 風の名前。表示名では // ないことに注意。手元に無い名前は Photoshop 側で代替される) size_px: // フォントサイズ(px) color: // RGBA 各 0..1 の配列 [ r, g, b, a ] (a 省略で [ r, g, b ] も可) tracking: // トラッキング(1/1000 em) kerning: // 手動カーニング bold: // 疑似ボールド(FauxBold) true/false italic: // 疑似イタリック(FauxItalic) true/false underline: // 下線(Underline) true/false ] 本文とランの長さは変わらない。継承でキーを持たないランには追加される。 テキストレイヤ以外や runIndex 範囲外の場合は例外。


setLayerRichText

メソッド

引数

引数 既定値 説明
index   レイヤ番号
text   新しい本文(改行は \r)
runs void [ %[ length: // 適用文字数
…setLayerRunStyle の style と同じキー
],... ] 省略可
paragraphs void [ %[ length: // 段落の文字数
justification: // 行揃え 0=左 1=右 2=中央
],... ] 省略可

解説

テキストレイヤの本文とラン構成/段落構成をまとめて差し替える。

setLayerText はスタイルを先頭ランに畳んでしまうので、本文を変えつつ 部分ごとに書式を変えたい場合はこちらを使う。

runs / paragraphs の length は UTF-16 コードユニット数(絵文字等サロゲート ペアは 2)。length の合計が本文長と合わない場合は末尾要素が過不足を吸収する (伸ばす/切り詰める)。長さ 0 の要素は捨てられる。void や空配列を渡すと 単一ラン/単一段落に畳まれる。末尾に改行(\r)が無ければ補われる。 各ランのスタイルは「元の先頭ランを雛形にして指定キーだけ上書き」なので、 指定しなかった書式は元の見た目のまま残る。

テキストレイヤ以外の場合は例外。


setLayerJustification

メソッド

引数

引数 既定値 説明
index   レイヤ番号
justification   行揃え 0=左 1=右 2=中央
paraIndex -1 対象段落番号(getLayerInfo().text.paragraphs に対応)。
負値で全段落。既定 -1

解説

テキストレイヤの段落の行揃えだけを変更する(本文もラン構成も変えない)。

テキストレイヤ以外や paraIndex 範囲外の場合は例外。


getLayerFonts

メソッド

引数

引数 既定値 説明
index   レイヤ番号

戻り値

フォント名の配列

解説

テキストレイヤが持つフォント名の一覧を返す(フォント選択 UI の候補用)。

setLayerRunStyle / setLayerRichText の font に渡せる名前。 テキストレイヤ以外の場合は例外。


getLayerTextTransform

メソッド

引数

引数 既定値 説明
index   レイヤ番号

戻り値

[ xx, xy, yx, yy, tx, ty ] (tx,ty=平行移動)

解説

テキストレイヤの配置(アフィン変換)を取得する。

getLayerInfo().text.transform と同じ値。テキストレイヤ以外は例外。


setLayerTextTransform

メソッド

引数

引数 既定値 説明
index   レイヤ番号
matrix   [ xx, xy, yx, yy, tx, ty ] の 6 要素配列

解説

テキストレイヤの配置(アフィン変換)を差し替える。

書き換わるのはテキスト情報だけで、レイヤ矩形(焼き込み済みラスタ)は 動かない。単純な平行移動には moveTextLayer を使うこと。 テキストレイヤ以外や要素数不足の場合は例外。


moveTextLayer

メソッド

引数

引数 既定値 説明
index   レイヤ番号
dx   X 移動量(px)
dy   Y 移動量(px)

解説

テキストレイヤを平行移動する。アフィン変換の tx/ty とレイヤ矩形

(マスク矩形があればそれも)を同じだけずらすので、PSD 内蔵のラスタも 一緒に動く。テキストレイヤ以外の場合は例外。


getLayerTextBounds

メソッド

引数

引数 既定値 説明
index   レイヤ番号

戻り値

%[ left:, top:, right:, bottom: ]

解説

テキストレイヤの流し込み枠を取得する(アフィン変換のローカル座標。

文書上の位置は transform の tx/ty を足したもの)。 テキストレイヤ以外の場合は例外。


setLayerTextBounds

メソッド

引数

引数 既定値 説明
index   レイヤ番号
left  
top  
right  
bottom  

解説

テキストレイヤの流し込み枠を差し替える(アフィン変換のローカル座標)。

実際に流し込みが変わるのは段落テキスト(ボックステキスト)のみで、 ポイントテキストでは Photoshop 側が字形から枠を作り直す。 テキストレイヤ以外の場合は例外。


clearStorageCache

メソッド

解説

static method

ストレージとして保持されてるキャッシュをクリアする