Icono del sitio Carlos A. Oliveras

😲 Marcos PROPORCIONALES (porcentuales) con PHOTOSHOP (script) 👌

YouTube video player

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!

Salir de la versión móvil