It's a little messy in places and needs tidying up, but here ya go.
// Add Image Data around the boarder of the image
// Photoshop CS Script
// First thing is to set up what setting will be used in the rest of the script
// but save them so they can be reset to what they were before this script is ran.
displayDialogs = DialogModes.NO;
var defaultRulerUnits = app.preferences.rulerUnits;
app.preferences.rulerUnits = Units.PIXELS;
// Define variables (can add new colours here too)
var black = new SolidColor();
black.rgb.red = black.rgb.green = black.rgb.blue = 0;
var white = new SolidColor();
white.rgb.red = white.rgb.green = white.rgb.blue = 255;
var AD = app.activeDocument;
// Execute functions
FlickrBorder();
AuthorText(getPhotoDate());
ImageDataText(getExifData());
AD.flatten();
// Function to add hairline and border for uploading to Flickr
function FlickrBorder() **
AD.flatten();
backgroundColor = black;
AD.selection.selectAll();
AD.selection.stroke(white, 1, StrokeLocation.INSIDE);
AD.resizeCanvas(AD.width.value + 50, AD.height.value + 50, AnchorPosition.MIDDLECENTER);
AD.resizeCanvas(AD.width.value + 0, AD.height.value + 50, AnchorPosition.TOPCENTER);
**
// This function sets Author and copyright notice to image
function AuthorText(strDate) **
var nameLayer = AD.artLayers.add();
nameLayer.kind = LayerKind.TEXT;
var TI = nameLayer.textItem;
TI.position = [23, AD.height.value - 21];
TI.contents = strDate;
TI.font = "ADD FONT NAME HERE";
TI.size = 18;
TI.color = white;
**
// Sets Image info text to image
function ImageDataText(strExif) **
var infoLayer = AD.artLayers.add();
infoLayer.kind = LayerKind.TEXT;
var TI = infoLayer.textItem;
TI.position = [23, AD.height.value - 43];
TI.contents = strExif;
TI.font = "ADD FONT NAME HERE";
TI.size = 18;
TI.color = white;
**
// Sets image data to a string that will later be used to set into the image
function getExifData() **
var exifData = AD.info.exif.toString();
var exifDataArray = explodeArray(exifData,",");
for(n = 0; n < exifDataArray.length; n = n + 1 ) **
var stringTemp=exifDataArray[n]
//alert(n + ": " + stringTemp); //Show what's coming out of array
if(stringTemp.indexOf("Exposure Time")!=-1)**
var expTime = exifDataArray[n+1];
**
if(stringTemp.indexOf("F-Stop")!=-1)**
var fstop = exifDataArray[n+1];
**
if(stringTemp.indexOf("Focal Length")!=-1)**
var focal = exifDataArray[n+1];
**
if(stringTemp.indexOf("ISO Speed Ratings")!=-1)**
var iso = exifDataArray[n+1];
**
**
var strTemp = "Focal Length: " + focal + ", Exposure: " + expTime + " " + fstop + ", ISO: " + iso + ".";
return strTemp;
**
function getPhotoDate() **
var exifData = AD.info.exif.toString();
var exifDataArray = explodeArray(exifData,",");
for(n = 0; n < exifDataArray.length; n = n + 1 ) **
var stringTemp=exifDataArray[n]
if(stringTemp.indexOf("Date Time Original")!=-1)**
var phoTime = exifDataArray[n+1];
var dateArray1 = phoTime.split(" ", 1);
phoTime = dateArray1[0];
var dateArray2 = phoTime.split(":");
var monthsArray =["January","February","March","April","May","June","July","August","September","October","November","December"];
phoTime = monthsArray[dateArray2[1]-1]+" "+dateArray2[2]+" "+dateArray2[0];
**
**
var strTemp = "Copyright © 68lbs_on_Flickr, " + phoTime + ".";
return strTemp;
**
//function below credited to 'bradles' over at the Adobe User to User forums.
function explodeArray(item,delimiter) **
tempArray=new Array(1);
var Count=0;
var tempString=new String(item);
while (tempString.indexOf(delimiter)>0) **
tempArray[Count]=tempString.substr(0,tempString.indexOf(delimiter));
tempString=tempString.substr(tempString.indexOf(delimiter)+1,tempString.length-tempString.indexOf(delimiter)+1);
Count=Count+1
**
tempArray[Count]=tempString;
return tempArray;
**