Copiar imagem da área de transferência para arquivo

28

É possível tirar uma imagem da área de transferência e enviá-la para um arquivo (usando X)?

Eu posso fazer isso com texto facilmente:

$ xclip -selection c -o > file.text

Mas quando tento o acima com uma imagem, nada está escrito.


O motivo pelo qual desejo fazer isso é que não tenho um editor de imagens instalado e fiquei pensando se eu poderia fazer isso sem instalar um.

Lerp
fonte

Respostas:

49

Você pode realmente fazer isso com xclip. O segredo é a -topção, que o encaminha à Seção 2.6.2 do ICCCM . Confesso que não culpo você por não ter lido ... De qualquer forma, por exemplo, cliquei com o botão direito do mouse no seu avatar no Chromium e selecionei "Copiar imagem":

  1. Veja quais destinos estão disponíveis:

    $ xclip -selection clipboard -t TARGETS -o
    TARGETS
    image/png
    text/html
    
  2. Anote o image/pngalvo; vá em frente e pegue:

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

NOTA: Algumas pesquisas mostram que você precisa do xclip da revisão 81 do SVN (a partir de abril de 2010) ou posterior para ter a -topção necessária . Ou aplique os patches você mesmo.

derobert
fonte
Estou usando 0.12, o que é oferecido por, pacmanentão terei que obter a versão upstream. Obrigado!
Lerp
Erro: a imagem de destino / png não está disponível, isso é antigo.
Extensão do
@ Stígandr Confirmei que isso ainda funciona na minha máquina executando o teste Debian (stretch). Talvez você tenha copiado um JPEG ou algum outro tipo de imagem? Provavelmente, é melhor fazer uma nova pergunta em vez de depurá-la nos comentários.
derobert
3

O xclip não funciona com imagens no meu computador (svn84-4):

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

Mas há outro programa que captura a captura de tela e cola em um arquivo, de forma muito simples: scrot :

scrot /tmp/myImage.png
Gérard
fonte