Un problema clásico al añadir marcos a una imagen con Photoshop es que, si quieres crear una acción y poner marco a muchas fotos, no sirve un valor fijo: necesitamos un marco cuyo grosor sea proporcional al tamaño de la imagen. Es decir, que se calcule como un porcentaje de alguna de las dimensiones de esta.
Que yo sepa, la única forma de conseguirlo es mediante un script, y eso es lo que os traigo hoy. En el vídeo está explicado el asunto, y aquí os pongo el enlace de descarga:
👉 Descargar script 👈
No es más que un archivo zip que contiene el script – podéis renombrar la extensión como «.txt» si os resulta más fácil para editarlo, pero recordad dejadlo luego como .jsx en la versión final.
Por si alguien tiene curiosidad, os explico aquí cómo funciona la cosa (muy por encima):
//
// Añadir marco alrededor de la imagen como porcentaje
// El porcentaje se calculará sobre la dimensión más grande
//
Las líneas con doble barra son comentarios, anotaciones que podemos incluir. Photoshop las ignorará.
#target photoshop;
Indica al script que debe ejecutarse en Photoshop, pero aquí es un formalismo más que otra cosa ya que siempre lo abriremos desde Photoshop.
if(documents.length) app.activeDocument.suspendHistory(‘Añadir marco’, ‘main()’);
Nombre que tendrá la aplicación del script en el estado de historia, como un solo paso
function main(){
Inicio de la función principal del script
var startRulerUnits = preferences.rulerUnits;
Guarda en una variable en qué unidad estaban nuestras reglas. El motivo es que el script cambia esta unidad para forzar que la ampliación de lienzo se aplique como pixels – así, al final, podremos volver a dejar las unidades como estuvieran al principio. Se podría obviar si os da igual que os cambie las unidades, no es una parte fundamental de lo que queremos hacer.
app.preferences.rulerUnits = Units.PIXELS;
Cambia las unidades a píxeles, que es lo que aplicaremos al lienzo (una vez calculados cuántos píxeles corresponden al porcentaje deseado).
var doc = activeDocument;
Esto es para simplificar y escribir solo «doc» en vez de «activeDocument» dentro del script, es como definir una abreviación.
var porcentaje = prompt(«Introduce % marco (decimales con punto)», 5);
Aquí definimos qué porcentaje vamos a usar. Tal como está, se lo pregunta al usuario proponiendo 5 como valor por defecto, pero podemos borrar esa parte y poner el número deseado para que no pregunte cada vez. En el vídeo digo que no quitéis el punto y coma – realmente creo que no pasa nada, pero yo por si acaso siempre lo incluyo.
var marco = (Math.max(doc.height,doc.width)/100) * porcentaje;
Aquí ocurren dos cosas: por un lado, la función Math.max determina cuál de las dos dimensiones (alto/ancho) es la más grande, y una vez determinado esto, multiplica sus dimensiones en píxeles por el porcentaje previamente indicado, obteniendo así el valor en píxeles correcto para este documento en particular. Este valor quedará guardado en la variable «marco«.
// Color (solo si capa Fondo)
var colormarco = new SolidColor();
colormarco.rgb.hexValue = ‘000000’;
app.backgroundColor=colormarco;
//
Como explico en el vídeo, este es el color del marco si el documento consta de una capa fondo (si no, será transparente). Definimos el color deseado y lo asignamos como color de fondo.
doc.resizeCanvas((doc.width + (marco*2)), (doc.height + (marco*2)), AnchorPosition.MIDDLECENTER);
Por fin, el momento concomitante: redimensionar el lienzo. En este caso, se suma el valor de la variable «marco» multiplicado por dos tanto al ancho como al alto.
Por ejemplo, si tenemos un documento de 1000×500 y le pedimos un marco del 10%, primero determinará que 1000 es la dimensión más larga, luego calculará el 10% de 1000, que es 100, y entonces añadirá 100 por la izquierda, 100 por la derecha, 100 por arriba y 100 por abajo (por tanto, el doble de 100 horizontalmente y verticalmente).
preferences.rulerUnits = startRulerUnits;
}
Finalmente, se restituyen las unidades de las reglas al valor inicial, para dejarlo todo como estaba, y se cierra la función principal (la llave de cierre).
Que conste que esta explicación la hago con un afán divulgador, por intentar hacer esto más entendible, no porque yo sea un zorro de los scripts – ya digo en el vídeo que yo aquí hago experimentos más que otra cosa.
Por último, como digo al final del vídeo, os recuerdo que el script tendrá que estar siempre en el mismo lugar si grabáis una acción. Otra posibilidad es que lo coloquéis en esta ruta:
Win: C:\Program Files\Adobe\Adobe Photoshop 20XX\Presets\Scripts
Mac: /Applications/Adobe Photoshop 20XX/Presets/Scripts
Si lo ponéis ahí y luego iniciáis Photoshop (si estaba abierto, tendréis que cerrarlo), veréis que ahora el script aparece directamente en el menú Archivo>Secuencia de comandos. Por un lado, así lo tendremos más a mano en Photoshop, pero será un poco más latoso acceder cada vez a esa ruta si queremos modificarlo.
Y eso es todo. Como siempre, ojalá os haya sido útil. ¡Un saludo y mil gracias por vuestra atención!
Comments
Gracias de nuevo.
Script muy util y facil de usar.
Una preguntita… se podra hacer in script con profundidad , es decir 3D?
Saludos y de nuevo gracias
Hola Jonathan, ¿a qué te refieres con «script con profundidad»? Si te refieres a funciones 3D de Photoshop, ya no funcionan bien, están en proceso de eliminarlas, así que ni con acciones ni con scripts es recomendabla intentar hacer nada, porque seguro que falla. Si, en cambio, te refieres a un marco con alguna clase de efecto 3D, intenta explicarlo un poco mejor porque depende del tipo de efecto exacto en el que estés pensando.
Saludos y gracias por comentar.
Gracias por este regalazo, Carlos.
Un saludo
Gracias a ti, MaríaAmparo! Un abrazo 🤗
Muy buena solución. Gracias Carlos.
Hola Juan Antonio, muchas gracias por comentar! Saludillos.
Muchas gracias por este interesantísimo aporte, Carlos.
Como siempre, clarísima y completa explicación, tanto aquí como en YouTube, de una herramienta que tantas veces he echado en falta.
Se trata de algo que siempre he tenido que resolver de modo «artesano» y este script facilita muchísimo el asunto. Y más, como dices, si pensamos en «enmarcar» fotos por lotes.
En mi caso particular, esta herramienta es un auténtico tesoro. Veo que muchas veces, de hecho diría que casi siempre, presentar una buena fotografía con un passepartout adecuado -tanto en color como en anchura- le da a esta foto toda la presencia que parece no apreciarse tanto sin ese enmarcado; de alguna manera ayuda a concentrarse aislando la foto de todo lo que le rodea y facilitando el acto de «perderse» en la imagen. Que no es poco.
Otra vez GRACIAS. En serio. Y un saludo.
Hola Jose Luis, mil gracias por tu comentario pues siempre me anima saber que lo que comparto es útil. En este caso, además, ya antes me habían preguntado por el tema otras personas, así que confiaba en que a alguien le sirviese, pues como dices, el tema de usar marcos es algo muy universal y que mucha gente aplica.
De nuevo gracias y un saludo! 👍