Photoshop+Javascriptでデバッグ

PhotoshopにもJavascriptのデバッガがあるんだそうです!
それがコレ!

ExtendScript Toolkit という名前みたい。

まだ開いただけなのでそのパフォーマンスは未知数だけど、これでデバッグが楽になる~♪
いままでalertとか、documentにテキストレイヤーを追加してそこに出力したりして調査してたから(^^;

開き方はというと
ファイル>スクリプト>参照でファイル選択ダイアログを出して、実行するスクリプトを選択。ALTキーを押しながら「読み込み」をすると上の画面を開くことができました。

ExtendScript Toolkitのヘルプ>オブジェクトモデルビューアで次のような画面が表示できました。

これがあればリファレンス調べるのが楽になって幸せになれそうですね!

PhotoShop+JavaScriptでサムネール

PhotoshopやillastratorなどAdobe製品でJavascriptを使ったマクロが組めるって話を以前から聞いていましたが、なかなか触る機会が無かったので弄ってみました。

で、できたものがこちらのサムネイル

[処理内容]
・フォルダ内のjpg画像の一覧を取得
・ファイルを開いて440pxにリサイズ
・画像をサムネール画像にコピペ
・画像の位置調整(4段6コマの24コマ構成)
・テキストでナンバリング
・ファイルに保存して次のファイルを作成

わざわざPhotoshopでしかもJavascriptでやるような内容じゃないんですけどね(^^;

Javascriptでファイル操作ってあんまりしないし、FileSystemベースとは違うAdobeオリジナルオブジェクトってこともあって色々と苦労しました。。。

特に癖があるな~って思ったことがいくつかありました。。。
 ・テキストレイアは一般レイヤーのkind(種類)フラグを変更すると内容(オブジェクト)が変わる。キモイよ~。。。
 ・テキストレイヤー位置を指定して書けない。。。
 ・絶対位置への移動機能が無い。。。何故に!?
 ・画像を選択範囲でしかコピーできなさげなところ
   レイヤーのコピー機能が無い。。。どういうこと!?
 ・コピペする場所を指定できない。
   キャンバスの中心に画像の中心を合わせて配置されるみたい。
   規則性があってくれたところが救いでしたけど。。。左上原点を計算して、そこから再配置みたいな考え方でソースが複雑になっちゃいました。。。

っとまぁ、色々苦労したわけですけど何とか形になったかな?

ついでにオブジェクトを調べたりした結果を添付します~
以下の内容はオブジェクトのプロパティ(フィールド)とメソッドがごちゃ混ぜです。


[layer]
kind,
fillOpacity,
layerMaskDensity,
layerMaskFeather,
vectorMaskDensity,
vectorMaskFeather,
filterMaskDensity,
filterMaskFeather,
grouped,
isBackgroundLayer,
pixelsLocked,
positionLocked,
transparentPixelsLocked,
textItem,
typename,
name,
allLocked,
blendMode,
linkedLayers,
opacity,
visible,
bounds,
xmpMetadata,
parent

[layer[kind=ART].textItem]
contents,
size,
font,
justify,
antiAliasMethod,
autoKerning,
color,
useAutoLeading,
tracking,
verticalScale,
horizontalScale,
baselineShift,
leading,
ligatures,
alternateLigatures,
oldStyle,
position,
direction,
fauxBold,
fauxItalic,
capitalization,
strikeThru,
underline,
language,
noBreak,
kind,
justification,
leftIndent,
firstLineIndent,
rightIndent,
spaceBefore,
spaceAfter,
hangingPuntuation,
textComposer,
hyphenation,
minimumGlyphScaling,
desiredGlyphScaling,
maximumGlyphScaling,
minimumLetterScaling,
desiredLetterScaling,
maximumLetterScaling,
minimumWordScaling,
desiredWordScaling,
maximumWordScaling,
autoLeadingAmount,
hyphenateWordsLongerThan,
hyphenateAfterFirst,
hyphenateBeforeLast,
hyphenLimit,
hyphenationZone,
hyphenateCapitalWords,
width,
height,
warpStyle,
warpDirection,
warpBend,
warpHorizontalDistortion,
warpVerticalDistortion,
typename,
parent




[layer[kind=TEXT].textItem]
antiAliasMethod,
autoKerning,
color,
useAutoLeading,
tracking,
verticalScale,
horizontalScale,
baselineShift,
contents,
font,
leading,
ligatures,
alternateLigatures,
oldStyle,
position,
direction,
size,
fauxBold,
fauxItalic,
capitalization,
strikeThru,
underline,
language,
noBreak,
kind,
justification,
leftIndent,
firstLineIndent,
rightIndent,
spaceBefore,
spaceAfter,
hangingPuntuation,
textComposer,
hyphenation,
minimumGlyphScaling,
desiredGlyphScaling,
maximumGlyphScaling,
minimumLetterScaling,
desiredLetterScaling,
maximumLetterScaling,
minimumWordScaling,
desiredWordScaling,
maximumWordScaling,
autoLeadingAmount,
hyphenateWordsLongerThan,
hyphenateAfterFirst,
hyphenateBeforeLast,
hyphenLimit,
hyphenationZone,
hyphenateCapitalWords,
width,
height,
warpStyle,
warpDirection,
warpBend,
warpHorizontalDistortion,
warpVerticalDistortion,
typename,
parent