#target photoshop
var myFile = new File('c/')
var mask = '*.png'
var doc = activeDocument;
var dlg = new Window('dialog','Add a logo to the image');
dlg.alignChildren = ['top','left'];
dlg.btnGp = dlg.add('group');
dlg.btnGp.logoCk = dlg.btnGp.add('checkbox',undefined,'Add a logo');
dlg.btnGp.logoBtn = dlg.btnGp.add('button',undefined,'Select a file');
dlg.btnGp.logoPath = dlg.btnGp.add('statictext',undefined,'');
dlg.btnGp.logoPath.size = [400,15];
dlg.btnGp.logoBtn.enabled = false;
dlg.btnGp.logoPath.enabled = false;
dlg.ok = dlg.add('button',undefined,'Okay');
dlg.btnGp.logoCk.onClick = function (){
if(this.value){
dlg.btnGp.logoBtn.enabled = dlg.btnGp.logoPath.enabled = true;
}
else{
dlg.btnGp.logoBtn.enabled = dlg.btnGp.logoPath.enabled = false;
}
}
dlg.btnGp.logoBtn.onClick = function(){
myFile = File.openDialog ('Select a sogo file', mask, false);
if(myFile !=null){dlg.btnGp.logoPath.text = myFile.fsName};
};
dlg.ok.onClick = function(){
try{
if(dlg.btnGp.logoCk.value&&myFile.exists){
placeFile (myFile)
raster ();
}
}
catch(e){}
dlg.close();
}
dlg.show();
function placeFile(file){
var idPlc = charIDToTypeID( "Plc " );
var desc9 = new ActionDescriptor();
var idIdnt = charIDToTypeID( "Idnt" );
desc9.putInteger( idIdnt, 3 );
var idnull = charIDToTypeID( "null" );
desc9.putPath( idnull, new File( file ) );
var idFTcs = charIDToTypeID( "FTcs" );
var idQCSt = charIDToTypeID( "QCSt" );
var idQcsa = charIDToTypeID( "Qcsa" );
desc9.putEnumerated( idFTcs, idQCSt, idQcsa );
var idOfst = charIDToTypeID( "Ofst" );
var desc10 = new ActionDescriptor();
var idHrzn = charIDToTypeID( "Hrzn" );
var idRlt = charIDToTypeID( "#Rlt" );
desc10.putUnitDouble( idHrzn, idRlt, 0.000000 );
var idVrtc = charIDToTypeID( "Vrtc" );
var idRlt = charIDToTypeID( "#Rlt" );
desc10.putUnitDouble( idVrtc, idRlt, 0.000000 );
var idOfst = charIDToTypeID( "Ofst" );
desc9.putObject( idOfst, idOfst, desc10 );
executeAction( idPlc, desc9, DialogModes.NO );
}
function raster(){
var idrasterizeLayer = stringIDToTypeID( "rasterizeLayer" );
var desc12 = new ActionDescriptor();
var idnull = charIDToTypeID( "null" );
var ref1 = new ActionReference();
var idLyr = charIDToTypeID( "Lyr " );
var idOrdn = charIDToTypeID( "Ordn" );
var idTrgt = charIDToTypeID( "Trgt" );
ref1.putEnumerated( idLyr, idOrdn, idTrgt );
desc12.putReference( idnull, ref1 );
executeAction( idrasterizeLayer, desc12, DialogModes.NO );
}