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

    Photoshop Javascript change layer color


      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





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

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


          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






          // perform select all & fill the document

          // monCalc






          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 );