2 votos

¿Cómo puedo pegar un SVG o PNG desde el portapapeles como un archivo?

Figma me permite copiar elementos al portapapeles como imágenes : PNG o SVG. Luego puedo pegarlas directamente en algunos programas. Por ejemplo, puedo pegarlo como una imagen en Pages o Google Docs.

Problema

Pero muchos programas necesitan que una imagen sea un archivo antes de poder utilizarla, normalmente arrastrando y soltando.

Lo que he probado

Figma permite exportar archivos de imagen, pero es muchos más pasos . También puedo crear un nuevo archivo desde la imagen del portapapeles con Vista Previa, pero eso supone de nuevo más pasos, y no funciona para los SVG.

Lo que quiero

Me gustaría poder seleccionar mi escritorio o una carpeta, pegar la imagen y el resultado es un nuevo archivo. ¿Hay alguna manera de hacerlo?

3voto

Rajkumar S Puntos 248

Hacer un servicio de Automator con un atajo de teclado

  1. Instalar PNG Paste
  2. Pegar código para hacer un flujo de trabajo de Automator
  3. Añadir atajos de teclado para activar el flujo de trabajo

Utilizando V en Finder.app pegará los datos de la imagen desde el portapapeles (si está ahí) como un archivo, o bien pegará normalmente.

1. Instalar pngpaste

Ejecuta esto Homebrew en el Terminal para instalar el pngpaste utilidad de línea de comandos.

  1. brew install pngpaste

2. Hacer un servicio con Automator

Hacer un tipo de flujo de trabajo llamado Servicio que aparecerá en Menú Finder Servicios Finder . Intenta pegar una imagen como un archivo, o bien realiza un pegado normal.

  1. Abrir Automator.app

  2. Nuevo archivo Acción rápida Elegir

  3. Establecer parámetros

    Nombre del archivo: Pegar imagen del portapapeles como archivo
    El flujo de trabajo recibe sin entrada en Buscador

  4. Añadir Ejecutar AppleScript y sustituir su código por

    on run {input, parameters}

    set cbInfoAsString to (clipboard info) as string
    
    if cbInfoAsString contains "«class furl»" then
    
        tell application "System Events" to ¬
            keystroke "v" using control down
    
    else
        set formattedDate to do shell script ¬
            "date -j '+%Y-%m-%d at %H.%M.%S'"
    
        if cbInfoAsString contains "TIFF picture" then  
            tell application "Finder" to set thePath to ¬
                (insertion location as alias) & ¬
                formattedDate & ".png" as string
            do shell script "/opt/homebrew/bin/pngpaste " & ¬
                the quoted form of the POSIX path of thePath
    
        else if paragraph 1 of (the clipboard as text) contains "<svg" then
    
            tell application "Finder" to set thePath to ¬
                (insertion location as alias) & ¬
                formattedDate & ".svg" as string
            do shell script "pbpaste -Prefer txt> " & ¬
                the quoted form of the POSIX path of thePath
    
        end if
    end if

    end run

3. Añadir atajos de teclado

Reasignar el comando normal de Pegar del Finder a un atajo de teclado secundario V . A continuación, asigne el atajo de teclado principal V a nuestro nuevo script.

  1. Configuración del sistema Teclado Atajos de teclado Atajos de aplicaciones Añadir (+)

    Campo

    Valor

    Aplicación

    Finder.app

    Título del menú

    Pegar

    Atajo de teclado

    V

  2. Configuración del sistema Teclado Atajos de teclado Servicios General

    En Pegar imagen del portapapeles como archivo , haga doble clic None para sustituirlo por el atajo de teclado V

4. Prueba

  1. Copiar una imagen como datos de imagen. Utilice V para pegarlo en Finder. Debería aparecer un archivo de imagen. Pruebe tanto el PNG como el SVG (por ejemplo, en el programa de Figma Copy as PNG y Copy as SVG ).

  2. Copiar un archivo que no sea de imagen. Utilice V para pegarlo en el Finder. El archivo debería aparecer como lo haría antes de seguir esta guía.

Si "Finder.app" quiere acceder a "System Events.app", eso es OK .

"Finder.app" wants access to "System Events.app"

Lo mismo para permitir que el servicio envíe pulsaciones de teclas; dé permisos de accesibilidad a Finder.app para que este error desaparezca.

"Paste Clipboard Image as File is not allowed to send keystrokes."

Crédito

El proceso ha sido adaptado de @Landon . El código se ha modificado ligeramente a partir de @usuario3439894 de la respuesta de Detectar si un elemento del portapapeles es un dato de imagen utilizando AppleScript . Este script no tiene comprobación de errores, por lo que puede crear efectos secundarios impredecibles si no se utiliza como se indica.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X