Cómo mostrar el selector de color desde una acción en Photoshop

In Photoshop, Problemas y soluciones by Carlos A. Oliveras2 Comments

Esta es otra de esas cosas un tanto específicas que a veces comparto aquí, no con la idea de que os aporte una utilidad inmediata, sino para que quede en el blog para el día de mañana, por si alguien tiene este problema y busca una solución. 

El problema

Empecemos por entender la dificultad que pretendemos resolver: al grabar una acción, puedes elegir colores (frontal y de fondo), y esto queda registrado como parte de la acción… pero no puedes hacer que la acción se detenga en ese paso para que el usuario introduzca los colores que quiera. Como muchos sabréis, si desplegáis todos los pasos de una acción, a la izquierda de cada paso hay un cuadradito que podemos “activar” – de este modo, si lo que hace ese paso lo permite, la acción se parará en ese punto para pedir la interacción del usuario. Es decir, si ese paso, por ejemplo, aplica un filtro de desenfoque gaussiano, y marcamos ese recuadro, entonces la acción mostrará la ventanita para pedir un valor de radio. Si, en cambio, lo que hace ese paso es una acción directa que no admite parámetros, no podremos marcar el cuadrado.



El recuadro para abrir el cuadro de diálogo correspondiente, si la operación lo admite.

Pues bien, el problema es que en el caso de la selección de colores, pese a tener un cuadro de diálogo propio donde se eligen unos parámetros (de color en este caso), Photoshop no nos permite marcar el recuadro para pedir la interacción del usuario (sospecho que esto se deba a que el selector de color no se abre desde un menú).

Antes de seguir, debo confesar que yo nunca me había dado cuenta de esto, porque no he tenido necesidad (de momento) de crear una acción que permita al usuario indicar un color frontal y uno de fondo, pero hace poco, tuve que echarle una mano a alguien que tenía este problema. Pensé que existiría una solución simple, pero tras investigar un poco por Internet, encontré más gente con el mismo problema y ninguna respuesta clara.

El selector de color.

Un posible apaño

Evidentemente, lo más fácil es elegir los colores a mano antes de ejecutar la acción, y una vez están elegidos, iniciarla. Pero esto requiere acordarse antes – si te olvidas, luego has de tirar para atrás todos los pasos de la acción. Que no es un drama, pero sí molesto. Tampoco serviría si la acción ha de cambiar de color varias veces.

Otra opción es hacer lo típico de insertar una “parada” en la acción y mostrar un mensaje para pedirte que tú a mano elijas los colores. Funciona, pero es un sistema que tiene más sentido cuando la acción realmente necesita un paso que depende del criterio del usuario, como marcar una zona con una selección, o cualquier cosa más “manual”. Abrir el selector de color, en cambio, va a ser siempre igual, por lo que se hace un poco raro que una acción te pida que lo hagas tú. La cosa empeoraría si hiciera falta cambiar de colores dos o tres veces a lo largo de la acción, ya que puede volverse muy pesado – cada vez hay que aceptar el mensaje de parada de la acción, abrir el selector, elegir color y aceptar, volver a abrirlo a mano para el otro color, y finalmente ir a la paleta de acciones para hacer clic en el dichoso micro-icono que retoma la ejecución de la acción. Si has de hacer esto varias veces cada vez que corres la acción, quizá sea más rápido hacerlo todo a mano directamente.

Dicho todo esto, también es cierto que cuanto más simple, mejor. Así que para acciones que uno no vaya a estar usando demasiado a menudo, lo anterior podría ser la opción más sensata.

La solución

La solución más elegante que he encontrado (aunque no 100% ideal, por lo que comentaré luego) ha sido crear un script (secuencia de comandos) e incluir la llamada al script como parte de la acción. No descarto que exista otra forma más simple de hacerlo, pero esta debería funcionar o, como mínimo, abrirnos la puerta para solucionar otros problemas de este tipo. También tiene la ventaja de reducir el riesgo de errores (comparado con hacerlo a mano cada vez).

Para ello, empezaremos por crear un script que muestra el selector de color una vez para pedir el color frontal, y una segunda vez para pedir el color de fondo (realmente las dos veces se pide el color frontal, pero el de la segunda vez se asignará como color de fondo). Para crear el script, abrimos un editor de texto tipo “bloc de notas” o similar (que cree texto sin formato), y pegamos en él estas líneas:

app.showColorPicker();
var my_foreground = app.foregroundColor;
app.showColorPicker();
app.backgroundColor = app.foregroundColor;
app.foregroundColor = my_foreground;

A continuación, guardamos esto con el nombre que queramos, y cerramos el editor de texto. Tendremos un archivo “loquesea.txt” – bien, pues vamos a la extensión “txt” y la cambiamos por “jsx“, que es la que corresponde a este tipo de scripts. Según cómo tengáis configurado el sistema operativo, es posible que tengáis que activar la opción “Mostrar extensiones de archivo” (o desmarcar “Ocultar extensiones de archivo“) para que estas tres letras se muestren en el explorador de archivos correspondiente.

Ya casi estamos, pero antes de poder grabar la acción, tenemos que colocar este archivo en la carpeta “scripts” de Photoshop, que por defecto se encuentra en la ruta siguiente (igual tenéis que adaptar un poco la ruta, pero debería ser algo similar a lo que pondré):

• Windows: C:\Program Files\Adobe\Adobe Photoshop CC 2018\Presets\Scripts

• Mac: Applications > Photoshop CC > Presets > Scripts

Una vez el archivo está en esa carpeta, abrimos Photoshop (si estaba abierto, cerradlo y abridlo de nuevo para que detecte el nuevo archivo), y ahora ese script debería aparecer dentro del submenú Archivo>Secuencias de comando (Windows), o Photoshop>Secuencias de comando (Mac).  Si no os aparece directamente listado en este submenú, o simplemente no queréis tenerlo ahí, otra opción para abrirlo es elegir (en ese submenú) la opción “Examinar…“, y seleccionarlo directamente desde el disco duro (se abrirá la típica ventana para seleccionar un archivo). En este caso, tened en cuenta que tras grabar la acción, el archivo del script deberá permanecer en la misma carpeta donde lo hayáis seleccionado, o la acción dejará de funcionar.

Una última cosa: dije antes que esta solución no es 100% ideal. El motivo es que hay que tener en cuenta que una acción de este tipo siempre tendrá que ir con la “mochila” del script. Si llevamos la acción a otro equipo, pero nos olvidamos de copiar el script, la acción funcionará a medias, pues solo almacena la llamada al script, no su contenido, así que la parte del selector de color no haría nada.

Finalmente…

Una vez hemos hecho todo lo anterior, podemos grabar nuestra acción con normalidad, con la única diferencia de que cuando vayamos a elegir los colores frontal y de fondo, iremos al menú de Secuencias de comando y elegiremos nuestro script. De este modo, cuando terminemos la acción y la reproduzcamos, la acción no se limitará a repetir los colores que hayamos introducido, sino que “llamará” al script, y aparecerá el selector de color. Pero, como dije antes, la acción no registrará directamente los colores elegidos, sino solo la llamada al script, con lo cual podremos elegir los colores cada vez que se ejecute la acción.

Para terminar, decir que aunque aparentemente esto funciona, y le resolvió el problema a la persona que requirió mi ayuda, yo no he hecho un uso intenso de este script, así que como siempre, no hay garantías de nada, ni sé si puede fallar con alguna versión de Photoshop. Dicho esto, espero que algún día, en algún lugar, le sea útil a alguien.

[Nota: Si solo necesitáis elegir el color frontal, me parece que bastaría con incluir la primera línea del script, y ya está, aunque no lo he probado.]



Etiquetas: , , , , , , , , , ,

Comments

Leave a Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.