The following script will resize your logo/text to a percentage of the shortest side of your document.
Copy and paste the script into ExtendScript Toolkit, this gets installed with Photoshop
This utility can be found in the relevant folder:-
PC: C:\Program Files\Adobe\Adobe Utilities
MAC: <hard drive>/Applications/Utilities/Adobe Utilities
Amend the variables at the top of the script to suit your needs.
The script needs to be saved into:-
PC: C:\Program Files\Adobe\Adobe Photoshop CS#\Presets\Scripts
NB: Vista and Windows 7 you will have to save it elsewhere and copy it to this folder due to permissions.
MAC: <hard drive>/Applications/Adobe Photoshop CS#/ Presets/Scripts
If Photoshop was open, close and restart Photoshop so that it can pickup the new script.
Now you can create your action , file - place - select your logo/file accept the placed file, then, File - Scripts - select the script.
This will do the resize and placement.
Note: the script will also work with a text layer.
One other nice thing using this method is you can use any image to be placed as a logo.
Code:
activeDocument.suspendHistory('Logo Resize', 'main()');
function main(){
if(!documents.length) return;
/////////////////////////////// Amend to suit /////////////////////////////////
var Percent = 25; /* Resize logo to percentage of smallest side of doc */
var OffsetX = -10; /* Move logo10 pixels to the left */
var OffsetY = -10; /* Move 10 pixels up. */
var Opacity = 100; /* Opacity of logo */
/////////////////////////////////////////////////////////////////////////////////////////////
var startRulerUnits = app.preferences.rulerUnits;
app.preferences.rulerUnits = Units.PIXELS;
var myDoc = activeDocument;
var LB = myDoc.activeLayer.bounds;
var docHeight = myDoc.height;
var docWidth = myDoc.width;
var LHeight = Math.abs(LB[3].value) - Math.abs(LB[1].value);
var LWidth = Math.abs(LB[2].value) - Math.abs(LB[0].value);
var percentageHeight = ((docHeight/LWidth)*Percent);
var percentageWidth = ((docWidth/LWidth)*Percent);
if(docWidth < docHeight){
myDoc.activeLayer.resize(percentageWidth,percentageWidth,AnchorPosition.MIDDLECENTER);
}else{
myDoc.activeLayer.resize(percentageHeight,percentageHeight,AnchorPosition.MIDDLECENTER);
}
var LB = myDoc.activeLayer.bounds;
var X = docWidth - Math.abs(LB[2].value);
var Y = docHeight - Math.abs(LB[3].value);
X += OffsetX;
Y += OffsetY;
activeDocument.activeLayer.translate(X,Y);
activeDocument.activeLayer.opacity=Opacity;
app.preferences.rulerUnits = startRulerUnits;
}
If you do a lot of batch work I have written Picture Processor that can add a logo/text
http://www.scriptsrus.talktalk.net/index.htm