En la ocasión, yo también tengo la imagen gráfica de los datos a partir de una captura de pantalla en el portapapeles y lo he usado muy versión simplificada del ejemplo de AppleScript código mostrado más abajo para escribir a un archivo de disco. Sin embargo, he reescrito es así que todo lo que tiene que hacer es establecer el valor de dos variables, leer los comentarios en el código, a continuación, guardar la secuencia de comandos usando el Editor de secuencias de Comandos. A continuación, puede desencadenar de un método abreviado de teclado para utilizar una aplicación como FastScripts o similar.
De esta manera usted no necesita dar a cada aplicación que tiene el foco independiente permiso para ejecutarlo, como usted si usted utiliza un Automator Servicio/QuickAction conjunto para cualquier aplicación. (O usted podría poner a una aplicación, por ejemplo, el Finder y, a continuación, sólo se desencadenan a partir de allí.)
FastScripts es gratuito para hasta 10 atajos de teclado. Tenga en cuenta que no estoy afiliado con el desarrollador de este producto, sólo un usuario satisfecho.
Guarde el siguiente ejemplo AppleScript código como un script llamado por ejemplo, Escribir Portapapeles la Imagen Gráfica de los Datos a un Archivo, a continuación, asignarle un atajo de teclado en FastScripts, he utilizado ⇧⌘6, y empezar a utilizarlo. Tenga en cuenta que también se puede utilizar en Ejecutar el Shell Script de acción en un Automator Servicio/QuickAction si quieres, pero FastScripts es el camino a seguir.
Si desea codificar una ubicación, en lugar de elegir la carpeta de diálogo, sólo hágamelo saber y yo podemos cambiar el código.
Lo que este ejemplo de AppleScript código no:
- Comprueba el portapapeles para ver si contiene la imagen gráfica de datos y si no se informa al usuario.
- Si el portapapeles contiene la imagen gráfica de los datos de un elegir la carpeta de diálogo se abre.
- Seleccione la ubicación para guardar el gráfico de los datos de la imagen desde el portapapeles a archivo, y lo hace, a menos que usted no tiene permiso de escritura a la ubicación, se le advierte y, a continuación, elija nuevo.
- La convención de nomenclatura es, por ejemplo: captura de Pantalla 2020-05-21 en 9.34.29 PM.png
Ejemplo de AppleScript código:
-- #
-- ### Write Clipboard Graphic Image Data to File ###
-- #
-- # This example AppleScript code will write graphic image data in its normal form on the clipboard to disk file.
-- # All you need to do is set the value of the fileExtension variable to the type of graphic image file you want.
-- # Then when the script runs, a choose folder dialog box will appear, you select a location and click the Choose button.
-- # The graphic image data in its normal form on the clipboard is written to disk file with the following naming convention:
-- # 'Screen Shot 2020-05-21 at 9.34.29 PM.fileExtension' e.g. 'Screen Shot 2020-05-21 at 9.34.29 PM.png'
-- # Set the value of the fileExtension variable
-- # to the type of graphic image file you want.
-- #
-- # Valid values are: png, jpg, tiff, gif
set fileExtension to "png"
-- # The defaultChooseFolderLocation is the default
-- # location the choose folder dialog opens to.
-- # It can be any properly formed AppleScript
-- # 'path to (folder)', or use a fully qualified POSIX path.
set defaultChooseFolderLocation to path to (pictures folder)
-- ########################################
-- ## Do Not Edit Below Unless You Know What You Are Doing. ##
-- ########################################
-- # With the exception of the file naming convention, the rest
-- # of the code is tokenized and should not need to be edited.
-- # Obviously though, feel free to edit it if you so choose.
if fileExtension is equal to "png" then
set imageType to «class PNGf»
else if fileExtension is equal to "jpg" then
set imageType to JPEG picture
else if fileExtension is equal to "tiff" then
set imageType to TIFF picture
else if fileExtension is equal to "gif" then
set imageType to GIF picture
else
display dialog "The file extension set is not recognized!" buttons {"OK"} ¬
default button 1 with title "Write Clipboard Graphic Image Data to File" with icon stop
return
end if
if ((clipboard info) as string) contains imageType then
my chooseLocationAndWriteFile(imageType, fileExtension, defaultChooseFolderLocation)
else
display dialog "The clipboard does not contain graphic image data!" buttons {"OK"} ¬
default button 1 with title "Write Clipboard Graphic Image Data to File" with icon caution
end if
-- ## Handler(s) ##
on chooseLocationAndWriteFile(imageType, fileExtension, defaultChooseFolderLocation)
set cbImage to (the clipboard as imageType)
set fileName to do shell script ¬
"echo $(date '+Screen Shot %Y-%m-%d% at %l.%M.%S %p." & fileExtension & "')"
set saveToLocation to POSIX path of (choose folder with prompt ¬
"Choose the Folder to save the clipboard image to..." default location ¬
defaultChooseFolderLocation)
set imageFile to saveToLocation & fileName
my writeToFile(cbImage, imageFile, true, imageType, fileExtension)
end chooseLocationAndWriteFile
on writeToFile(theData, theFile, overwriteExistingContent, imageType, fileExtension)
try
set theOpenedFile to open for access POSIX file theFile with write permission
if overwriteExistingContent is true then set eof of theOpenedFile to 0
write theData to theOpenedFile starting at eof
close access theOpenedFile
on error eStr number eNum
try
close access file theFile
end try
if eNum is equal to -5000 then
display dialog ¬
"You do not have write permission to this location!" buttons {"OK"} ¬
default button 1 with title "File I/O Error..." with icon stop
my chooseLocationAndWriteFile(imageType, fileExtension, defaultChooseFolderLocation)
else
display dialog eStr & " number " & eNum ¬
buttons {"OK"} default button 1 ¬
with title "File I/O Error..." with icon stop
end if
return
end try
end writeToFile
Nota: El ejemplo de AppleScript código es sólo eso y no contiene ningún adicionales de control de error como puede ser apropiado. La responsabilidad recae sobre el usuario para agregar cualquier error de manipulación como puede ser apropiado, necesitaba o quería. Echa un vistazo al tratar de instrucción y de error de instrucción en la Guía de Lenguaje de AppleScript. Véase también el Trabajo con los Errores. Además, el uso de la demora de comandos puede ser necesaria entre los eventos donde apropiada, por ejemplo delay 0.5
, con el valor de la demora establecido de forma adecuada.