2011-09-08 35 views
9

私はPhotoshop CS3用のスクリプトを書く前にいくつかの調査をしています。 JavaScriptを使ってPhotoshopにスクリプトを書きたいと思います。Photoshopでレイヤースタイル情報にどのようにアクセスしますか?

私はPhotoshopのJavaScriptのガイドを通して見てきましたが、私は層(ストローク、グラデーション、外側グロー、など)のためのレイヤースタイル情報を取得する方法を見つけることができません。

は、レイヤースタイルを設定する方法がありますが、私は、あなたが情報を得ることができます何かを見つけることができませんでした。

私は唯一のPhotoshop CS3を持っているので、私はそれに合うソリューションを探しています。

+1

うわー、アドビのドキュメントはうんざりです。 –

+0

母、ええ、別のレイヤースタイル(グラデーションの色、ストロークの幅など)のオプションを設定する方法についても何の手がかりもありません。 –

+0

私が欲しかったのは、PS(ctr-ins/shift-ins)のための左手のコピー/ペーストで、私はそれをスクリプト化しなければならないと言われました。長いイライラした旅から始まり、あきらめました。 –

答えて

1

Adob​​e ExtendScript Toolkitを開きます。メニューの[ヘルプ]> [オブジェクトモデルビューア](またはそれに類するもの、私のものはドイツ語)に進みます。

[ブラウザ]サイドタブのオブジェクトモデルブラウザで、Photoshopを選択します。これで、右上の検索フィールドで検索できます。

ArtLayerのためdeifinitionとArtLayer.applyStyle()下の画像を参照してください:周り

http://i.stack.imgur.com/UEmj6.png

enter image description here

検索、それは、Adobeのマニュアルよりもはるかに良いです。

+0

大きなヒント!これは、愚かなPDFよりもはるかにナビゲートする方が簡単です。しかし、私はまだレイヤースタイルの情報にアクセスする方法を見つけることができませんでした。レスポンスありがとう! –

+0

ExtendScriptオブジェクトブラウザが失敗します。彼らは、文書化されたクラスの1つとしてSolidColorを含んでいません。 – thenonhacker

1

私は同じ問題を抱えていたと私はhttp://www.rags-int-inc.com/PhotoTechStuff/CollageTemplate/index.html上の解決策を見つけたので、私は、あなたのポストをreat、私はあまりにも遅くはないよ願っています。この男には "レイヤ効果オプション"というスクリプトがあります。ソースは一番下にダウンロードできます。

まあそれは効果を適用するための唯一のパネルですが、あなたはコードを参照する場合、あなたが必要なものを抽出することができます。ここで

は、私はすべての行(これは主に&ペーストをコピーしている)の正確な意味を知らなかった活性層

function newStrokeEffect(strokeSize, strokeColor, strokePosition) { 
    var effectDescriptor = new ActionDescriptor(); 
    var effectColor = new ActionDescriptor(); 
    var strokeOpacity = 100.0;  // 0 - 100 % 
    var strokeBlend = "Nrml";  // Normal[Nrml], ColorBurn[CBrn], SoftLight[SftL}, Color[Clr ] 

    effectDescriptor.putBoolean(charIDToTypeID("enab"), true); 
    effectDescriptor.putEnumerated(charIDToTypeID("Styl"), charIDToTypeID("FStl"), charIDToTypeID(strokePosition)); 
    effectDescriptor.putEnumerated(charIDToTypeID("PntT"), charIDToTypeID("FrFl"), charIDToTypeID("SClr")); 
    effectDescriptor.putEnumerated(charIDToTypeID("Md "), charIDToTypeID("BlnM"), charIDToTypeID(strokeBlend)); 
    effectDescriptor.putUnitDouble(charIDToTypeID("Opct"), charIDToTypeID("#Prc"), strokeOpacity); 
    effectDescriptor.putUnitDouble(charIDToTypeID("Sz "), charIDToTypeID("#Pxl"), strokeSize); 
    effectColor.putDouble(charIDToTypeID("Rd "), strokeColor.rgb.red); 
    effectColor.putDouble(charIDToTypeID("Grn "), strokeColor.rgb.green); 
    effectColor.putDouble(charIDToTypeID("Bl "), strokeColor.rgb.blue); 
    effectDescriptor.putObject(charIDToTypeID("Clr "), charIDToTypeID("RGBC"), effectColor); 
    return(effectDescriptor); 
} 

var tmpC = new SolidColor(); 
tmpC.rgb.hexValue = "FF00FF"; 
var layerOptions = new ActionDescriptor(); 
var refr01 = new ActionReference(); 
var layerProperties = new ActionDescriptor(); 

layerOptions.putUnitDouble(charIDToTypeID("Scl "), charIDToTypeID("#Prc"), 400.0); 

var layerEffects = newStrokeEffect(2, tmpC, "InsF"); 

layerOptions.putObject(charIDToTypeID("FrFX"), charIDToTypeID("FrFX"), layerEffects); 

refr01.putProperty(charIDToTypeID("Prpr"), charIDToTypeID("Lefx")); 
refr01.putEnumerated(charIDToTypeID("Lyr "), charIDToTypeID("Ordn"), charIDToTypeID("Trgt")); 
layerProperties.putReference(charIDToTypeID("null"), refr01); 
layerProperties.putObject(charIDToTypeID("T "), charIDToTypeID("Lefx"), layerOptions); 

try { 
    executeAction(charIDToTypeID("setd"), layerProperties, DialogModes.NO); 
} catch(ex) { 
    if (ex != "Error: User cancelled the operation") 
     alert(scriptName + " newLayerEffect() exception caught? line[" + ex.line + "] " + ex); 
} 

をストローク効果を適用するための少しexsample(私が必要なもの)ですが、それは動作します:-)(Photoshop CS5でのみテスト済み)

2

新しいモジュールjamStylesが最近Photoshop用のJSON Action Managerスクリプトライブラリに追加されました。現在のレイヤースタイルを取得および設定のためのサポートを提供する他のものの中で

が、それは2つのJavaScript関数を定義してjamStyles.getLayerStylejamStyles.setLayerStyleは(両方ブレンドオプションレイヤー効果)はJSONを使用してオブジェクト。 Get Layer Style呼ば

ユーティリティスクリプトも提供されます。

+0

最後に数時間の検索の後、これが動作します。 '{" blendOptions ":{...}、" layerEffects ":{...}}' - 私は必要なものだけを返します。 –

関連する問題