Hi all,
I am very new to scripting (as of this morning) and struggling to get my head round whether the following is possible. Apologies if I am missing something basic.
I would like to be able to have a script which will open a jpeg, insert the file name on to the image, save as a jpeg and close.
I have managed to find examples of this and currently have a script which will open the image, insert the file name and save the file - but as a photoshop document. I am also very keen on the images closing as I need to process at around 200 images at a time and and at the moment can only do a few at a time.
I have inserted what i have so far below...Any help would be appreciated.
/*
Description:
This script is a template script that will
open and process a folder of images
*/
// enable double clicking from the
// Macintosh Finder or the Windows Explorer
#target photoshop
// Make Photoshop the frontmost application
// in case we double clicked the file
app.bringToFront();
///////////////////////////
// SET-UP //
///////////////////////////
// A list of file extensions to skip, keep them lower case
gFilesToSkip = Array( "db", "xmp", "thm", "txt", "doc", "md0", "tb0", "adobebridgedb", "adobebridgedbt", "bc", "bct" );
// Pops open a dialog for the user to
// choose the folder of documents to process
var inputFolder = Folder.selectDialog("Select a folder of documents to process");
///////////////////////
// MAIN //
//////////////////////
// Open Folder of Images
OpenFolder();
// show the path to an output folder
alert(outputFolder);
///////////////////////////
// FUNCTIONS //
///////////////////////////
// Given the a Folder of files, open them
function OpenFolder() {
var filesOpened = 0;
var fileList = inputFolder.getFiles();
for ( var i = 0; i < fileList.length; i++ ) {
// Make sure all the files in the folder are compatible with PS
if ( fileList[i] instanceof File && ! fileList[i].hidden && ! IsFileOneOfThese( fileList[i], gFilesToSkip )) {
open( fileList[i] );
filesOpened++;
/////////////////////////////////////
// Put all your processing functions... //
/////////////////////////////////////
var originalUnits = app.preferences.rulerUnits
app.preferences.rulerUnits = Units.PIXELS
app.foregroundColor.rgb.red = 255
app.foregroundColor.rgb.green = 255
app.foregroundColor.rgb.blue = 255
// add the pixel position for the left side of your text block below
var textLeftPosition= 260
// add the pixel position for the bottom of your text block below
var textBottomPosition= 260
var typeLayer = app.activeDocument.artLayers.add();
typeLayer.name = app.activeDocument.name;
typeLayer.kind = LayerKind.TEXT;
typeLayer.textItem.size = 48;
typeLayer.textItem.position = [textLeftPosition, textBottomPosition];
var layerName = typeLayer.name
typeLayer.textItem.contents = layerName;
app.activeDocument.close(SaveOptions.SAVECHANGES);
}
////////////////////////////////////////////
// ...in the area between these two comments. //
////////////////////////////////////////////
}
}
// given a file name and a list of extensions
// determine if this file is in the list of extensions
function IsFileOneOfThese( inFileName, inArrayOfFileExtensions ) {
var lastDot = inFileName.toString().lastIndexOf( "." );
if ( lastDot == -1 ) {
return false;
}
var strLength = inFileName.toString().length;
var extension = inFileName.toString().substr( lastDot + 1, strLength - lastDot );
extension = extension.toLowerCase();
for (var i = 0; i < inArrayOfFileExtensions.length; i++ ) {
if ( extension == inArrayOfFileExtensions[i] ) {
return true;
}
}
return false;
}