Copy link to clipboard
Copied
I have seen on the forum and have not found anything about it
I would like to configure the mixer brush tool with a script
I wish I could set all these parameters
I hope it can be done since I use this tool a lot
#target photoshop;
var s2t = stringIDToTypeID,
options = {
flow: 99,
wetness: 99,
dryness: 99,
mix: 99,
smooth: 99,
autoFill: true,
autoClean: true,
sampleAllLayers: true
};
(r = new ActionReference()).putClass(s2t("wetBrushTool"));
(d = new ActionDescriptor()).putReference(s2t("target"), r);
d.putObject(s2t("to"), s2t("target"), objToDesc(options));
executeAction(s2t("set"), d, DialogModes.NO);
function objToDesc(o) {
var d = new ActionDescriptor();
...
var options = new ActionDescriptor();
var options2 = new ActionDescriptor();
options2.putEnumerated(stringIDToTypeID("cropAspectRatioModeClass"), stringIDToTypeID("cropAspectRatioModeClass"), stringIDToTypeID("pureAspectRatio")); //targetSize, originalProportions, etc...
options2.putDouble(stringIDToTypeID("aspectWidth"), 0);
options2.putDouble(stringIDToTypeID("aspectHeight"), 0);
options2.putDouble(charIDToTypeID("CrWV"), 0);
options2.putDouble(charIDToTypeID("CrHV"), 0);
options2.putInte
...
Copy link to clipboard
Copied
You should be able to create Presets and select the Presets via Script.
Copy link to clipboard
Copied
i tried with scriptenlistener but it's not good.
Copy link to clipboard
Copied
Applying a Tool Preset?
Copy link to clipboard
Copied
Done as you suggested
works well
however it is possible to do it with scripts
Copy link to clipboard
Copied
»however it is possible to do it with scripts«
Sorry; I do not understand what you are trying to say here.
Copy link to clipboard
Copied
Ok thanks for your help
Copy link to clipboard
Copied
#target photoshop;
var s2t = stringIDToTypeID,
options = {
flow: 99,
wetness: 99,
dryness: 99,
mix: 99,
smooth: 99,
autoFill: true,
autoClean: true,
sampleAllLayers: true
};
(r = new ActionReference()).putClass(s2t("wetBrushTool"));
(d = new ActionDescriptor()).putReference(s2t("target"), r);
d.putObject(s2t("to"), s2t("target"), objToDesc(options));
executeAction(s2t("set"), d, DialogModes.NO);
function objToDesc(o) {
var d = new ActionDescriptor();
for (var k in o) {
var v = o[k];
switch (typeof (v)) {
case "boolean": d.putBoolean(s2t(k), v); break;
case "string": d.putString(s2t(k), v); break;
case "number": d.putInteger(s2t(k), v); break;
}
}
return d;
}
Copy link to clipboard
Copied
прикольный способ
👍
Copy link to clipboard
Copied
Согласен 🙂 Причем через .putClass можно назначать параметры в любой момент (вне зависимости от активного в данный момент инструмента).
Copy link to clipboard
Copied
I think the same - he did good job 😉
Copy link to clipboard
Copied
Is it possible to get such scripts for crop tool? . . Please help me sir @jazz-y
Copy link to clipboard
Copied
Please explain what you mean exactly.
Copy link to clipboard
Copied
I would like to configure the Crop tool with a script.
I wish I could set all these parameters. . . Thank You Sir @c.pfaffenbichler
Copy link to clipboard
Copied
I have not been able to change the settings via the currentToolOptions.
You should be able to create Presets and select the Presets via Script.
Copy link to clipboard
Copied
var options = new ActionDescriptor();
var options2 = new ActionDescriptor();
options2.putEnumerated(stringIDToTypeID("cropAspectRatioModeClass"), stringIDToTypeID("cropAspectRatioModeClass"), stringIDToTypeID("pureAspectRatio")); //targetSize, originalProportions, etc...
options2.putDouble(stringIDToTypeID("aspectWidth"), 0);
options2.putDouble(stringIDToTypeID("aspectHeight"), 0);
options2.putDouble(charIDToTypeID("CrWV"), 0);
options2.putDouble(charIDToTypeID("CrHV"), 0);
options2.putInteger(charIDToTypeID("CrWS"), 0);
options2.putInteger(charIDToTypeID("CrHS"), 0);
options2.putInteger(charIDToTypeID("CrRV"), 0);
options2.putInteger(charIDToTypeID("CrRS"), 1);
options2.putInteger(stringIDToTypeID("cropOverlay"), 2);
options2.putInteger(stringIDToTypeID("CropOptionsShowOverlay"), 1);
options2.putInteger(stringIDToTypeID("orientation"), 0);
options2.putInteger(stringIDToTypeID("cropShieldColorMode"), 1);
var c = new ActionDescriptor();
c.putDouble(stringIDToTypeID("red"), 200);
c.putDouble(stringIDToTypeID("green"), 0);
c.putDouble(stringIDToTypeID("blue"), 0);
options2.putObject(stringIDToTypeID("cropColor"), stringIDToTypeID("RGBColor"), c);
options2.putInteger(stringIDToTypeID("cropOpacity"), 75);
options2.putBoolean(stringIDToTypeID("cropAutoLightenShield"), true);
options2.putBoolean(stringIDToTypeID("cropShowShield"), true);
options2.putBoolean(stringIDToTypeID("preview"), false);
options2.putBoolean(stringIDToTypeID("cropAutoCenterCropBox"), true);
options2.putBoolean(stringIDToTypeID("cropShowCroppedArea"), true);
options2.putBoolean(stringIDToTypeID("AutoFillOnCrop"), true);
options2.putBoolean(stringIDToTypeID("hides"), false);
options.putObject(charIDToTypeID("CrpO"), charIDToTypeID("CrOC"), options2);
var r = new ActionReference();
r.putClass(stringIDToTypeID("cropTool"));
var d = new ActionDescriptor();
d.putReference(stringIDToTypeID("null"), r);
d.putObject(stringIDToTypeID("to"), stringIDToTypeID("null"), options);
executeAction(stringIDToTypeID("set"), d, DialogModes.NO);
Copy link to clipboard
Copied
That's so cool . Thank you so much Sir @r-bin
Copy link to clipboard
Copied
Hello Sir @r-bin . . . Where should I prepare to change this?
Copy link to clipboard
Copied
Hello Sir @r-bin . . . Where should I prepare to change this?
By @Thiha31203570tbl0
There is no such setting in my Photoshop. Ask someone else who has such Photoshop to research the "currentToolOptions" settings for this tool.
Copy link to clipboard
Copied
Hi, about the “Load Solid Colors Only” script, is it easy to get the relevant code, I've been integrating my own painting script recently, but it's still hard to gather information about some of the functions, including the "Load Solid Colors I'm trying my best, maybe you can give me some tips, thanks!
Copy link to clipboard
Copied
Please post screenshots to illustrate what you are talking about.
Copy link to clipboard
Copied
Hello, about the “Load Solid Colors Only” script, I need how to get the toggle script for this feature, jsx
Copy link to clipboard
Copied
Edit: You should include a check for the intended Tool, though.
// based on code by michael l hale and oleksii hirlin;
// 2025, use it at your own risk;
if (app.documents.length > 0) {
var ref = new ActionReference();
ref.putEnumerated( charIDToTypeID("capp"), charIDToTypeID("Ordn"), charIDToTypeID("Trgt") );
var applicationDesc = executeActionGet(ref);
var currenToolOpt = applicationDesc.getObjectValue(stringIDToTypeID("currentToolOptions"));
var solidColorOnly = currenToolOpt.getBoolean(stringIDToTypeID("loadSolidColorOnly"));
if (solidColorOnly == false) {setCTO([["loadSolidColorOnly", true]], true)}
else {setCTO([["loadSolidColorOnly", false]], true)};
};
// Oleksii Hirlin 2021
function getCTO(){
var ref = new ActionReference();
ref.putProperty(stringIDToTypeID("property"), stringIDToTypeID("currentToolOptions"));
ref.putEnumerated(stringIDToTypeID("application"), stringIDToTypeID("ordinal"), stringIDToTypeID("targetEnum"));
return executeActionGet(ref).getObjectValue(stringIDToTypeID("currentToolOptions"));
};
// setting currentToolOptions with options array
function setCTO( options, isIdTypeString ){
var desc = new ActionDescriptor();
var ref = new ActionReference();
ref.putClass( stringIDToTypeID( app.currentTool ) );
desc.putReference( stringIDToTypeID( "target" ), ref );
// getting current tool options so that they do not get reset
var ctoObj = getCTO();
// check if we are setting the eyedropper tool
if ( app.currentTool=="eyedropperTool" ){
ctoObj.putInteger( stringIDToTypeID( options[0][0] ), options[0][1] );
} else {
// iteration through options array and putting booleans into cto descriptor
for (var i=0; i < options.length; i++){
if (isIdTypeString==true){
ctoObj.putBoolean( stringIDToTypeID( options[i][0] ), options[i][1] );
} else {
ctoObj.putBoolean( charIDToTypeID( options[i][0] ), options[i][1] );
}
}
}
desc.putObject( stringIDToTypeID( "to" ), stringIDToTypeID( "currentToolOptions" ), ctoObj );
executeAction( stringIDToTypeID( "set" ), desc, DialogModes.NO );
};
Copy link to clipboard
Copied
Thank you very much! He can run and I try to read him as much as I can but it's too hard, I'm currently learning JavaScript before learning ps scripting, thanks again in the end!
Find more inspiration, events, and resources on the new Adobe Community
Explore Now