• Global community
    • Language:
      • Deutsch
      • English
      • EspaƱol
      • FranƧais
      • PortuguĆŖs
  • ę—„ęœ¬čŖžć‚³ćƒŸćƒ„ćƒ‹ćƒ†ć‚£
    Dedicated community for Japanese speakers
  • ķ•œźµ­ ģ»¤ė®¤ė‹ˆķ‹°
    Dedicated community for Korean speakers
Exit
0

Change brush diameter - JSX script

New Here ,
Feb 26, 2017 Feb 26, 2017

Copy link to clipboard

Copied

Hello all.

I try to change brush diameter through a JSX script.

I googled and found the following script in this forum.

This code changes diameter, but it also changes selected brush as below.

I don't know what's wrong.

My environment is  Windows 7 with Photoshop CC 2015.

script

function setBrushFeatures(Diameter) { 

  var ref = new ActionReference(); 

  ref.putEnumerated( charIDToTypeID("capp"), charIDToTypeID("Ordn"), charIDToTypeID("Trgt") ); 

  var appDesc = executeActionGet(ref); 

  var toolDesc = appDesc.getObjectValue(stringIDToTypeID('currentToolOptions')); 

  var brushDesc = toolDesc.getObjectValue(stringIDToTypeID('brush')); 

  if( brushDesc.hasKey(stringIDToTypeID('sampledData'))){ 

      var SampleData = brushDesc.getString(stringIDToTypeID('sampledData')); 

    var Name = brushDesc.getString(stringIDToTypeID('name')) 

   

  }

  if (Diameter == undefined) Diameter = brushDesc.getDouble(stringIDToTypeID('diameter')); 

  var SampleIntr = brushDesc.getBoolean(charIDToTypeID('Intr')); 

  var desc = new ActionDescriptor(); 

  var ref = new ActionReference(); 

  ref.putEnumerated( charIDToTypeID( "Brsh" ), charIDToTypeID( "Ordn" ), charIDToTypeID( "Trgt" ) ); 

desc.putReference( charIDToTypeID( "null" ), ref ); 

  var desc1 = new ActionDescriptor(); 

  desc1.putDouble(stringIDToTypeID('diameter'), Diameter); 

  if( brushDesc.hasKey(stringIDToTypeID('sampledData'))){ 

    desc1.putString(stringIDToTypeID('sampledData'), SampleData); 

    desc1.putString(stringIDToTypeID('name'), Name); 

    desc1.putBoolean(charIDToTypeID('Intr'), SampleIntr); 

  } 

 

 

    var desc5 = new ActionDescriptor(); 

    var idnull = charIDToTypeID( "null" ); 

        var ref3 = new ActionReference(); 

        var idBrsh = charIDToTypeID( "Brsh" ); 

        var idOrdn = charIDToTypeID( "Ordn" ); 

        var idTrgt = charIDToTypeID( "Trgt" ); 

        ref3.putEnumerated( idBrsh, idOrdn, idTrgt ); 

    desc5.putReference( idnull, ref3 ); 

 

 

  var idsampledBrush = stringIDToTypeID( "sampledBrush" ); 

  desc5.putObject( charIDToTypeID( "T   " ), idsampledBrush, desc1 ); 

  executeAction( charIDToTypeID( "setd" ), desc5, DialogModes.NO ); 

setBrushFeatures(24, ) 

Brush settings before running script.

before.png

after running script.

after.png

Views

1.1K

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines

correct answers 1 Correct answer

Community Expert , Feb 26, 2017 Feb 26, 2017

If you notice your before running the script image the brush has a fancy sample data brush tip from the appearance of the stroke preview.   As Far as I know only round brush tip diameter feature can be change via a Photoshop script.  Notice your  after the script has been run image the brush is now a round tip brush.

I find action manger script code very hard to decipher because I do not know all the 4 bytes ID codes and I would need looked them up in Adobe book. It looks like the function first

...

Votes

Translate

Translate
Adobe
Community Expert ,
Feb 26, 2017 Feb 26, 2017

Copy link to clipboard

Copied

LATEST

If you notice your before running the script image the brush has a fancy sample data brush tip from the appearance of the stroke preview.   As Far as I know only round brush tip diameter feature can be change via a Photoshop script.  Notice your  after the script has been run image the brush is now a round tip brush.

I find action manger script code very hard to decipher because I do not know all the 4 bytes ID codes and I would need looked them up in Adobe book. It looks like the function first retrieves the current brush description and test if its a sampled brush  and tries to handle  the sample brush case. Newer version of Photoshop  also have mixer brush that such a script  would need to be able to handled. For what version of Photoshop was this script written?  There is not test for what Photoshop version is using the script in the script.  If you search this forum toy will find scripts you can use to change round tip brush features. And other script to handle brushes by cycling through brush tool presets. And  some information on custom brush palettes Photoshop addons

JJMack

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines