Copiar imagen del portapapeles al archivo

28

¿Es posible tomar una imagen del portapapeles y enviarla a un archivo (usando X)?

Puedo hacer esto con texto fácilmente:

$ xclip -selection c -o > file.text

Pero cuando intento lo anterior con una imagen, no se escribe nada.


La razón por la que quiero hacer esto es que no tengo un editor de imágenes instalado, y me hizo pensar si podría hacerlo sin instalar uno.

Lerp
fuente

Respuestas:

49

Realmente puedes hacer esto con xclip. El secreto es la -topción, que lo remite a la Sección 2.6.2 de ICCCM . Lo cual confieso que no te culpo por no leer ... De todos modos, un ejemplo, acabo de hacer clic derecho en tu avatar en Chromium y seleccioné "Copiar imagen":

  1. Vea qué objetivos están disponibles:

    $ xclip -selection clipboard -t TARGETS -o
    TARGETS
    image/png
    text/html
    
  2. Tenga en cuenta el image/pngobjetivo; adelante y consíguelo:

    $ xclip -selection clipboard -t image/png -o > /tmp/avatar.png
    $ see /tmp/avatar.png    # yep, that's it
    

NOTA: Algunas investigaciones muestran que necesita xclip de la revisión 81 de SVN (desde abril de 2010) o posterior para tener la -topción requerida . O aplique los parches usted mismo.

derobert
fuente
Estoy usando 0.12, el que ofrece, pacmanasí que tendré que obtener la versión ascendente. ¡Gracias!
Lerp
Error: la imagen de destino / png no está disponible, esto debe ser antiguo. Tramo de Debian
Stígandr
@ Stígandr Confirmé que esto todavía funciona en mi máquina que ejecuta las pruebas de Debian (estiramiento). ¿Tal vez copiaste un JPEG o algún otro tipo de imagen? Probablemente sea mejor hacer una nueva pregunta en lugar de depurarla en los comentarios.
derobert
3

xclip no funciona con imágenes en mi computadora (svn84-4):

$ xclip -selection clipboard -t image/png -o
Error: target image/png not available

Pero hay otro programa que toma una captura de pantalla y lo pega en un archivo, muy simple: scrot :

scrot /tmp/myImage.png
Gérard
fuente