Este pequeño AppleScript tomará una captura de pantalla y sobreescribirá el archivo que actualmente tienes seleccionado en Finder.
# Comprueba que precisamente un archivo esté seleccionado
set F to the selection of application "Finder" as list
if (count F) 1 then return beep
set F to F's first item as alias
# Realiza una captura de pantalla directamente al portapapeles
# luego sobrescribe el archivo anterior con la imagen
# desde los datos del portapapeles
do shell script "screencapture -c"
set screenshot to the clipboard as JPEG picture
write screenshot to (F as alias)
No se mueve, copia ni elimina; simplemente lo sobrescribe. Así que, ten en cuenta que la fecha de creación permanecerá igual, lo que potencialmente podría hacer que generes una captura de pantalla nueva escribiéndola en un archivo de imagen creado hace dos años (La fecha modificada se actualiza como esperarías).
Como alguien sugirió, este tipo de cosas funcionaría bien como un servicio en Finder, al cual podrías asignar un atajo.
Creé uno de la siguiente manera:
El script es muy parecido al anterior (y se añade al final de esta respuesta en un bloque de código para que lo copies y pegues). Tiene algo de manejo de errores y notificaciones incluidas, dado que esto va a ser un servicio y es bueno hacerlo robusto. Tampoco toma ninguna captura de pantalla por su cuenta, ya que una captura de pantalla tomada cuando se activa el servicio necesariamente tendría a Finder enfocado, lo que podría no ser la captura de pantalla que deseas.
Por lo tanto, este servicio asume que ya has tomado la captura de pantalla por ti mismo y está esperando en el portapapeles. Finder ya tiene atajos que permiten enviar las capturas de pantalla directamente al portapapeles, así que no es necesario hacer nada extra.
Guardé el servicio como uno llamado Reemplazar Archivo de Imagen, ya que notarás que la entrada son específicamente archivos de imagen en Finder. Por lo tanto, el servicio no se activará accidentalmente si, por ejemplo, se seleccionara un archivo de aplicación.
Ahora aparece en el menú contextual emergente cada vez que hago clic derecho en una imagen en Finder:
Luego, fui a Preferencias del Sistema para asignar un atajo de teclado:
Este atajo aparece en el menú de Finder bajo Servicios:
Elegí R porque es bastante difícil de presionar accidentalmente, pero está bastante cerca de los atajos predeterminados para enviar una captura de pantalla directamente al portapapeles, es decir 3 y 4, lo que significa que el movimiento físico entre tomar una captura de pantalla y activar el servicio es conveniente de hacer.
Me alegra decir que, durante las pruebas, funcionó espléndidamente, así que quizás me lo quede para mí mismo ya que puedo ver que sería bastante útil.
Finalmente, aquí está el bloque de código para el flujo de trabajo de servicio de Automator:
on run {input, parameters}
# Asegúrate de que se pase precisamente un archivo al servicio
# De lo contrario termina con un beep
if (count input) is not 1 then return beep
# Captura de errores en caso de que el portapapeles
# no contenga datos de imagen
try
set ImageData to the clipboard as JPEG picture
on error errMsg number errNo
# Termina el script con una notificación
return display notification ¬
"No se encontró contenido de imagen. No se puede proceder." con title ¬
"Reemplazar Archivo de Imagen" subtitle ¬
"Error: el contenido del portapapeles es del tipo de datos incorrecto"
end try
# Si el script llega a este punto, todo debe estar
# bien así que podemos intentar sobrescribir el archivo de entrada
try
write ImageData to input
on error errMsg number errNo
return display notification ¬
"Sobrescritura no exitosa." with title ¬
"Reemplazar Archivo de Imagen" subtitle ¬
("Error " & errNo as text) & ": " & errMsg
end try
end run
1 votos
¿Qué tal si escribes un applescript para hacer eso? Una búsqueda puede darte un ejemplo para empezar...
0 votos
@SolarMike Esa es una gran idea. Soy nuevo en Applescripts, pero parece prometedor. Gracias
1 votos
Es una pendiente resbaladiza: ¡Encontré uno para una tarea y luego hice un par más! ¡Buena suerte!
1 votos
Una vez que tengas un script puedes establecerlo como un servicio: disponible a través del menú del clic derecho...
1 votos
@SolarMike También encontré eso, pero puedo hacerlo mejor; ¡puedo incrustar el script en la ventana del Finder y hacer que se ejecute una vez que suelto el archivo en el icono del script! Mira esto: macosxautomation.com/applescript/firsttutorial/16.html Y esto: developer.apple.com/library/content/documentation/… Además, si quieres la Reputation, siéntete libre de agregar tu solución como respuesta, la aceptaré.
1 votos
@ Has proporcionado los enlaces: ten el gusto de responder y te daré un +1. ¡Pero disfruta, saludos Mike!