1 Reply Latest reply on Mar 27, 2017 8:32 PM by JJMack

    Batch Processing Logo


      I regularly upload 300+ photos per week onto both my website and Facebook page.   The way my web page is set up (by the host), every photo uploaded has my large logo imprinted/embedded on it.


      I'm currently running Elements 13, but depending on any answers, I may have to move to another package.


      For Facebook, I have to go into Elements, Expert, File, Process Multiple Files, Labels and Custom Text, where a copyright sign and web page text are typed.  Once I've clicked on Ok, all photos are "batch processed" with this text, and it takes a matter of minutes to process the however many photos.


      The problem I have is that the text isn't big enough and plenty of people are happy to download the image(s) and ignore my copyright logo.


      Essentially, I'd like to "batch process" a large logo with graphic onto each photo.  It appears that Elements doesn't allow this.  Can it be done in Photoshop or Lightroom please?



        • 1. Re: Batch Processing Logo
          JJMack Most Valuable Participant

          Yes with Photoshop you can use a Photoshop Script to resize your logo for your different size images..   An Action can use that script to add your Logo Watermark. That Action can be batched to watermark all your images. With menu File>Automate>batch or use A script like menu File>Scripts>Image Processor.


          The script resize your places logo foe the image and positions it roe the lower right corner.  The action could easily add a layer style to the places logo and even change the layer position. The Logo and size and margin is codef in the first three var statement. Change to suite requirements.


          #target photoshop;  
          var logoFile = "~/Desktop/JJMack.png";           // Watermark file should be large for resize down works better than up
          var LogoSize = 10;                               // percent of document height to resize Watermark to
          var LogoMargin = 1;                              // percent of Document height the Watermark should have as a margin
          placeWatermark(logoFile, LogoSize, LogoMargin);  // Place Watermark  into the bottom right of document
          function placeWatermark(Image,Size,Margin){  
              if(!documents.length) return;   // if no document return
                 var doc = app.activeDocument; // set Doc object to active document
                 app.displayDialogs = DialogModes.NO; // Dialog off 
                 var strtRulerUnits = app.preferences.rulerUnits; // Save Users ruler units 
                 var strtTypeUnits = app.preferences.typeUnits; // Save Users Type units 
                 app.preferences.rulerUnits = Units.PIXELS; // work with pixels 
                 app.preferences.typeUnits = TypeUnits.PIXELS; // work with pixels 
                 var fileObj = new File(Image);                 // the passed file
                 if(!fileObj.exists){   // If file does not exits tell user 
                     alert(fileObj.name  + " does not exist!");  
                 placeFile(fileObj); // Place in file the Watermark png file
                 activeDocument.activeLayer.resize(100 ,100,AnchorPosition.MIDDLECENTER); // Insure Place did not scale layer  
                 var SB = activeDocument.activeLayer.bounds; // get layers bounds 
                 var layerHeight = SB[3] - SB[1]; // get layers height  
                 var resizePercent = (100/layerHeight)*(Size/100*doc.height.value); // Percent to resize by 
                 activeDocument.activeLayer.resize(resizePercent ,resizePercent,AnchorPosition.MIDDLECENTER);  // Resize width and height by percentage 
                 SB = activeDocument.activeLayer.bounds; // get resized layers bounds  
                 activeDocument.activeLayer.translate(-SB[0].value,-SB[1].value); // Move resized layer to top left canvas corner 
                 var LayerWidth = (SB[2].value - SB[0].value);  
                 var LayerHeight = (SB[3].value - SB[1].value);  
                 marginSize = Margin/100*doc.height.value; // move resized watermark into the document lower right corner with some margin
                 activeDocument.activeLayer.translate((doc.width.value -marginSize - LayerWidth),( doc.height.value -marginSize - LayerHeight));
              catch(e) { alert(e + ': on line ' + e.line); } // inform user of error  
                 app.preferences.rulerUnits = strtRulerUnits; // Restore user ruler units  
                 app.preferences.typeUnits = strtTypeUnits;  // Restore user type units    
          function placeFile(placeFile) {  
              var desc21 = new ActionDescriptor();  
              desc21.putPath( charIDToTypeID('null'), new File(placeFile) );  
              desc21.putEnumerated( charIDToTypeID('FTcs'), charIDToTypeID('QCSt'), charIDToTypeID('Qcsa') );  
              var desc22 = new ActionDescriptor();  
              desc22.putUnitDouble( charIDToTypeID('Hrzn'), charIDToTypeID('#Pxl'), 0.000000 );  
              desc22.putUnitDouble( charIDToTypeID('Vrtc'), charIDToTypeID('#Pxl'), 0.000000 );  
              desc21.putObject( charIDToTypeID('Ofst'), charIDToTypeID('Ofst'), desc22 );  
              executeAction( charIDToTypeID('Plc '), desc21, DialogModes.NO );