Skip navigation
retouchingguy
Currently Being Moderated

Script - To add watermark text with more than 1 line / font size

Jan 31, 2011 4:36 PM

Hi everyone, I've managed to find a cool script that adds a border and some text (if you want it - http://www.oblius.com/projects/photoborder/)

 

This results in the following -

1.jpg

What I really need is to change the script so I can have 2 lines, centered, the second line in a smaller font, like this:

2.jpg

 

Any help very appreciated, I know this will be really easy for anyone with script experience (its my 1st day using them!)

 

 

Script is:

 

/* Customizable variables */

 

// Outer border settings
outerBorderThickness = 10;                     // Adds to each side (left, right, top,

 

bottom)
outerBorderColor = new SolidColor();        // RGB Outer Border Color (see next 3 lines)
outerBorderColor.rgb.red = 255;                // Red value of outer border
outerBorderColor.rgb.green = 255;                // Green value
outerBorderColor.rgb.blue = 255;                // Blue value

 

// Inner border settings
innerBorderThickness = 0;                    // **Must be smaller than or equal to

 

outer border**
innerBorderOpacity = 75.0;                    // Percent value opacity for inner

 

border
innerBorderColor = new SolidColor();        // RGB Inner Border Color (see next 3 lines)
innerBorderColor.rgb.red = 255;                // Red value of outer border
innerBorderColor.rgb.green = 255;            // Green value
innerBorderColor.rgb.blue = 255;            // Blue value

 

// Signature
signatureText = "John + Jane www.Sabrina.co.nz";    // Text to place as signature
signatureOffsetX = 370                        // From RIGHT edge of document (tweak

 

these after setting font/size/text etc)
signatureOffsetY = 46                        // From BOTTOM edge of document (tweak

 

these after setting font/size/text etc)
signatureFont = "Verdana";                     // PostScript font name for signature
signatureFontSize = 5.0;                     // Font size in Points
signatureOpacity = 100.0                        // Opacity for signature
signatureAA = AntiAlias.NONE;                 // Anti-alias mode (options: NONE, CRISP,

 

SHARP, etc - same as palette)
signatureColor = new SolidColor();            // RGB Signature Color (see next 3 lines)
signatureColor.rgb.red = 255;                // Red value
signatureColor.rgb.green = 255;                // Green value
signatureColor.rgb.blue = 255;                // Blue value

 

/* End Customizable Variables */

 


/*************************************************************
*                                                  

 

         *
*                        BEGIN SCRIPT                      

 

*
*                                                  

 

         *
**************************************************************/

 


// Open sample file if no document is opened.
if (!app.documents.length > 0) {   
    var fileName = app.path.toString() + "/Samples/Dune.tif";
    var docRef = open( File(fileName) );
}

 

// Save old units and set to px
oldUnits = app.preferences.rulerUnits;
app.preferences.rulerUnits = Units.PIXELS;

 

// Save original document size
oldWidth = app.activeDocument.width;
oldHeight = app.activeDocument.height;

 

// Resize canvas to make room for outer border
newWidth = app.activeDocument.width + (outerBorderThickness*2);
newHeight = app.activeDocument.height + (outerBorderThickness*2);
app.activeDocument.resizeCanvas(newWidth, newHeight, AnchorPosition.MIDDLECENTER);

 

// Create a layer for the outer border and make it active
var outerBorderLayer = app.activeDocument.artLayers.add();
outerBorderLayer.name = "Black Outer Border";
outerBorderLayer.blendMode = BlendMode.NORMAL;
app.activeDocument.activeLayer = app.activeDocument.layers["Black Outer Border"];

 

// Select the original image area
selectionBounds = new Array
(
    new Array(outerBorderThickness, outerBorderThickness),
    new Array(oldWidth + outerBorderThickness, outerBorderThickness),
    new Array(oldWidth + outerBorderThickness, oldHeight + outerBorderThickness),
    new Array(outerBorderThickness, oldHeight + outerBorderThickness)
);
app.activeDocument.selection.select(selectionBounds, SelectionType.REPLACE);

 

// Fill the outer border area
app.activeDocument.selection.invert();
app.activeDocument.selection.fill(outerBorderColor);

 

// Create the inner border layer and make it active
var innerBorderLayer = app.activeDocument.artLayers.add();
innerBorderLayer.name = "White Inner Border";
innerBorderLayer.blendMode = BlendMode.NORMAL;
innerBorderLayer.opacity = innerBorderOpacity;
app.activeDocument.activeLayer = app.activeDocument.layers["White Inner Border"];

 

// Fill the inner border
app.activeDocument.selection.invert();
app.activeDocument.selection.expand(innerBorderThickness);
app.activeDocument.selection.fill(innerBorderColor);
app.activeDocument.selection.contract(innerBorderThickness);
app.activeDocument.selection.clear();

 

// Deselect
app.activeDocument.selection.deselect();

 

// Create a text layer
var signatureLayer = app.activeDocument.artLayers.add();
signatureLayer.name = "Signature";
signatureLayer.kind = LayerKind.TEXT;
signatureLayer.opacity = signatureOpacity;
signatureLayer.blendMode = BlendMode.NORMAL;
app.activeDocument.activeLayer = app.activeDocument.layers["Signature"];

 

// Add signature to text layer and position it
signatureLayer.textItem.contents = signatureText;
signatureLayer.textItem.font = signatureFont;
signatureLayer.textItem.size = signatureFontSize;
signatureLayer.textItem.color = signatureColor;
signatureLayer.textItem.antiAliasMethod = signatureAA;
txtPos = new Array((newWidth - signatureOffsetX), (newHeight - signatureOffsetY));
signatureLayer.textItem.position = txtPos;

 

// Restore the original ruler units
app.preferences.rulerUnits = oldUnits;

 

// Clear up memory
outerBorderThickness = null;
outerBorderColor = null;
innerBorderThickness = null;
innerBorderColor = null;
innerBorderOpacity = null;
signatureText = null;
signatureOffsetX = null;
signatureOffsetY = null;
signatureOpacity = null;
signatureFont = null;
signatureFontSize = null;
signatureOpacity = null;
signatureAA = null;
signatureColor = null;
selectionBounds = null;
newWidth = null;
newHeight = null;
oldWidth = null;
oldHeight = null;
oldUnits = null;
layerRef = null;
signatureLayer = null;

 

// EOF

 

More Like This

  • Retrieving data ...

Bookmarked By (0)

Answers + Points = Status

  • 10 points awarded for Correct Answers
  • 5 points awarded for Helpful Answers
  • 10,000+ points
  • 1,001-10,000 points
  • 501-1,000 points
  • 5-500 points