Código:
//*******************************************************************************
// PUEDES MODIFICAR ESTAS VARIABLES
var AnchoMarco = 5 // valor en porcentaje del tamaño del documento, ej: para 5% poner solo 5
var AnchoTrazo = 10 // Anchura del trazo en mil por ciento del tamaño del documento
// en un documento de 640 px el 5 equivale mas o menos a 3 px
var TamanioLetra = 16 // Variable para el tamaño letra, en porcentaje
var tipoLetra = "Impact" // Nombre de la letra para datos exif
var MyFolder = "~/Escritorio/" // Ruta de la carpeta donde se guardara los archivos
var FileSize = 99000 // Tamaño de archivo en bytes
var LadoMayor = 1382 // lado Mayor en Pixel
var tuNombre = "Tu Nombre"
//*******************************************************************************
//*******************************************************************************
var strtRulerUnits = preferences.rulerUnits
preferences.rulerUnits = Units.CM
var originalDoc = activeDocument
var docRef = activeDocument.duplicate()
var docResolution = Number(docRef.resolution)
//*********************************************
//*************************************************
function getCSVersion() {
return parseInt(version)
}
var mfactor = 1
if (getCSVersion() > 7 && preferences.rulerUnits == Units.CM){
mfactor = 72 / 2.54 // CM
}
if (getCSVersion() > 7 && preferences.rulerUnits == Units.PIXELS) {
mfactor = 72 / docResolution // PIXELS
}
var rfactor = 1
if (getCSVersion() > 8 && preferences.rulerUnits == Units.CM ) {
rfactor = Number(docResolution / 72) // CM
}
if (getCSVersion() > 8 && preferences.rulerUnits == Units.PIXELS ) {
rfactor = 1 // PIXELS
}
//*************************************************
//*********************************************
docRef.flatten()
var wh = Number(docRef.width)
if (docRef.width < docRef.height ){
wh = Number(docRef.height)
}
var cLetra = Number(TamanioLetra / 0.30)
cLetra = Number(wh * cLetra / 100)
var ElColor = foregroundColor
var ElColor2 = backgroundColor
var i = Number(wh * AnchoMarco / 100)
var h = Number(wh * AnchoTrazo / 1000)
backgroundColor = ElColor
docRef.resizeCanvas(docRef.width+h, docRef.height+h, AnchorPosition.MIDDLECENTER)
backgroundColor = ElColor2
docRef.resizeCanvas(docRef.width+i, docRef.height+i, AnchorPosition.MIDDLECENTER)
backgroundColor = ElColor2
docRef.resizeCanvas(docRef.width, docRef.height+i*1.25, AnchorPosition.TOPCENTER)
//*************************************************************************************
var myIso = ExifNumber("4855")
if (myIso == " no hay datos" ){
myIso = "Auto"
}
var MyExif = "Cámara: " + ExifNumber("0272") + ", " + "Velocidad: " + ExifNumber("3434") + ", " + "Diafragma: " + ExifNumber("3437") + ",\r" + "Dist.Focal: " + ExifNumber("7386") + ", " + "ISO: " + myIso +
", " + "Medicion Exp: " + ExifNumber("7383")+ ", " + "Modo: " + ExifNumber("4850") + "\r" + "Autor: " + tuNombre + ", " + "Fecha: " + formateaFecha(ExifNumber("6867"))
TextLayer=docRef.artLayers.add()
TextLayer.kind = LayerKind.TEXT
TextLayer.textItem.color = ElColor
TextLayer.textItem.size = cLetra
TextLayer.textItem.font = tipoLetra
TextLayer.textItem.position = [i/2,docRef.height - i*1.20]
TextLayer.textItem.contents= MyExif
//*************************************************************************************
preferences.rulerUnits = Units.PIXELS
if (docRef.width > docRef.height){
NuevoAncho(LadoMayor, 72)
}
else{
NuevoAlto(LadoMayor, 72)
}
//*******************************
foregroundColor = ElColor
backgroundColor = ElColor2
preferences.rulerUnits = strtRulerUnits
//*******************************************************************************
docRef.flatten();
var MyFile = noneExtension( originalDoc.name )
MyFile = escape(MyFile)
MyFile = MyFile.replace(/%20/g, "_");
MyFile = unescape(MyFile)
MyFile = MyFile.replace(/á/g, "a");
MyFile = MyFile.replace(/é/g, "e");
MyFile = MyFile.replace(/í/g, "i");
MyFile = MyFile.replace(/ó/g, "o");
MyFile = MyFile.replace(/ú/g, "ú");
MyFile = MyFile.replace(/ñ/g, "n");
MyFile = MyFile.replace(/Á/g, "A");
MyFile = MyFile.replace(/É/g, "E");
MyFile = MyFile.replace(/Í/g, "I");
MyFile = MyFile.replace(/Ó/g, "O");
MyFile = MyFile.replace(/Ú/g, "U");
MyFile = MyFile.replace(/Ñ/g, "N");
var NamesaveRef = MyFolder + "/" + MyFile + ".jpg"
//********************************************************************************
var qualit = 100;
var x = 10
var NewfileRef = new File( NamesaveRef );
SaveForForum(NewfileRef, qualit);
while (NewfileRef.length > FileSize )
{
qualit = qualit - x;
NewfileRef = new File( NewfileRef );
NewfileRef.remove();
SaveForForum(NewfileRef, qualit);
}
var tamanio = NewfileRef.length /1000
tamanio = Math.round(tamanio)
//*********************************************************************
// function
//*********************************************************************
function SaveForForum(filename, percentage)
{
var id7 = charIDToTypeID( "Expr" );
var desc3 = new ActionDescriptor();
var id8 = charIDToTypeID( "Usng" );
var desc4 = new ActionDescriptor();
var id9 = charIDToTypeID( "Op " );
var id10 = charIDToTypeID( "SWOp" );
var id11 = charIDToTypeID( "OpSa" );
desc4.putEnumerated( id9, id10, id11 );
var id12 = charIDToTypeID( "Fmt " );
var id13 = charIDToTypeID( "IRFm" );
var id14 = charIDToTypeID( "JPEG" );
desc4.putEnumerated( id12, id13, id14 );
var id15 = charIDToTypeID( "Intr" );
desc4.putBoolean( id15, false );
var id16 = charIDToTypeID( "Qlty" );
desc4.putInteger( id16, percentage); // quality
var id17 = charIDToTypeID( "QChS" );
desc4.putInteger( id17, 0 );
var id18 = charIDToTypeID( "QCUI" );
desc4.putInteger( id18, 0 );
var id19 = charIDToTypeID( "QChT" );
desc4.putBoolean( id19, false );
var id20 = charIDToTypeID( "QChV" );
desc4.putBoolean( id20, false );
var id21 = charIDToTypeID( "Optm" );
desc4.putBoolean( id21, true );
var id22 = charIDToTypeID( "Pass" );
desc4.putInteger( id22, 1 );
var id23 = charIDToTypeID( "blur" );
desc4.putDouble( id23, 0.000000 );
var id24 = charIDToTypeID( "EICC" );
desc4.putBoolean( id24, false );
var id25 = charIDToTypeID( "Mtt " );
desc4.putBoolean( id25, true );
var id26 = charIDToTypeID( "MttR" );
desc4.putInteger( id26, 255 );
var id27 = charIDToTypeID( "MttG" );
desc4.putInteger( id27, 255 );
var id28 = charIDToTypeID( "MttB" );
desc4.putInteger( id28, 255 );
var id29 = charIDToTypeID( "SHTM" );
desc4.putBoolean( id29, false );
var id30 = charIDToTypeID( "SImg" );
desc4.putBoolean( id30, true );
var id31 = charIDToTypeID( "SSSO" );
desc4.putBoolean( id31, false );
var id32 = charIDToTypeID( "SSLt" );
var list1 = new ActionList();
desc4.putList( id32, list1 );
var id33 = charIDToTypeID( "DIDr" );
desc4.putBoolean( id33, false );
var id34 = charIDToTypeID( "In " );
desc4.putPath( id34, new File( filename ) ); // filename
var id35 = stringIDToTypeID( "SaveForWeb" );
desc3.putObject( id8, id35, desc4 );
executeAction( id7, desc3, DialogModes.NO );
}
//*****************************************************************
function noneExtension( fileName )
{
var Point = fileName.charAt(fileName.length-4);
if ( Point == "." )
{
fileName = fileName.substring( 0, fileName.length-4);
}
return fileName;
}
//*****************************************************************
function NuevoAncho(Ancho, docResolution) {
//Ancho *= rfactor
var NuevoAlto
NuevoAlto = docRef.height * Ancho / docRef.width
docRef.resizeImage (Ancho, NuevoAlto, docResolution, ResampleMethod.BICUBIC)
}
function NuevoAlto(Alto, docResolution) {
//Alto *= rfactor
var NuevoAncho
NuevoAncho = docRef.width * Alto / docRef.height
docRef.resizeImage (NuevoAncho, Alto, docResolution, ResampleMethod.BICUBIC)
}
//*****************************************************************************************
function ExifNumber(n) { // function para extraer los datos exif, segun numero que pasemos
var docRef = activeDocument
var dato = docRef.info.exif
dato = dato.join()
var p = dato.indexOf(n)
if ( p > 0 ){
p = p+n.length
var dato = dato.slice(p)
var f = dato.indexOf(",")
dato = dato.substring(0, f )
return dato
}
else{
dato = " no hay datos"
return dato
}
}
//********************************************************************************************
//*****************************************************************************************
function formateaFecha(cadena)
{
return cadena.substring(10,12)+"/"+cadena.substring(7,9)+"/"+cadena.substring(2,6)+ cadena.substring(12,21)
}
Marcadores