1 Reply Latest reply on May 16, 2017 3:03 AM by dominique filiol

    Photoshop Javascript change layer color

    andreyo28152172

      Hello I am writing scripts to automate Adobe Photoshop process. I am using JavaScript as my scripting language.
      I've never used JavaScript in photoshop environment and i was wondering if someone could offer me some advice.
      Here is a high level overview of what i am trying to accomplish.
        1) Get a data set from a JSON file
        2) Loop through the JSON file and pull data which will then be passed into the image layers
        3) Apply patterns and colors to each layer

      4) Save file

       

      The first 2 steps are relatively simple (basic javascript patterns) How ever where i start to run into trouble is when i am actually trying to manipulate the image in the photoshop.
      How would I change the color of a layer ?
      Here is my code snippet that is NOT working

       

                function changeColor(){

                  var class2hex = app.activeDocument.artLayers.getByName("CLASS2HEX");

                   alert(class2hex.kind) // LayerKind.SOLIDFLL
                    var Color = new SolidColor();
                   Color.rgb.hexValue = 'a5142f'';
                   
                    // HOW DO I APPLY THE COLOR TO THE LAYER?
                     // ALSO how would i change the layer pattern in a similar fashion ?

       

      Thank you!

        • 1. Re: Photoshop Javascript change layer color
          dominique filiol Level 2

          //

          var docRef = app.activeDocument;

          //displayDialogs = DialogModes.ALL

          // define your fill color

          var color = new SolidColor();

          color.rgb["hexValue"] = "7f7f7f";

          var  monCalc = app.activeDocument.artLayers.getByName("CLASS2HEX");

           

          docRef.activeLayer =  monCalc ;

          for ( j=0;j<docRef.layers.length;j++) //masquer tous les calques

                   {

                      docRef.layers[j].visible=false;

                   } 

          monCalc.visible=true;

          var moncalc2 = monCalc.duplicate();//conserver le texte original

          pixeliser();//Transformer le calque texte en calque simple

          //Rogner

          docRef.trim(TrimType.TOPLEFT, true, true, true, true);

           

           

          //var class2hex = app.activeDocument.artLayers.getByName("CLASS2HEX");

           

          //             alert(class2hex.kind) // LayerKind.SOLIDFLL

           

          for ( j=0;j<docRef.layers.length;j++) //Demasquer tous les calques

                   {

                      docRef.layers[j].visible=true;

                   } 

          moncalc2.visible=true;

           

          // perform select all & fill the document

          // monCalc

          docRef.selection.selectAll();

          docRef.selection.fill(color);

          docRef.selection.deselect();

           

           

          function pixeliser()

          {

          var idMk = charIDToTypeID( "Mk  " );

              var desc165 = new ActionDescriptor();

              var idnull = charIDToTypeID( "null" );

                  var ref14 = new ActionReference();

                  var idSnpS = charIDToTypeID( "SnpS" );

                  ref14.putClass( idSnpS );

              desc165.putReference( idnull, ref14 );

              var idFrom = charIDToTypeID( "From" );

                  var ref15 = new ActionReference();

                  var idHstS = charIDToTypeID( "HstS" );

                  var idCrnH = charIDToTypeID( "CrnH" );

                  ref15.putProperty( idHstS, idCrnH );

              desc165.putReference( idFrom, ref15 );

          executeAction( idMk, desc165, DialogModes.NO );

          }