Kopieren Sie das Bild aus der Zwischenablage in eine Datei

28

Kann ich ein Bild aus der Zwischenablage in eine Datei ausgeben (mit X)?

Ich kann das mit Text leicht tun:

$ xclip -selection c -o > file.text

Aber wenn ich das oben genannte mit einem Bild versuche, wird nichts geschrieben.


Der Grund, warum ich dies tun möchte, ist, dass ich keinen Bildeditor installiert habe, und ich habe darüber nachgedacht, ob ich dies tun kann, ohne einen zu installieren.

Lerp
quelle

Antworten:

49

Sie können dies tatsächlich mit tun xclip. Das Geheimnis ist die -tOption, die Sie auf den ICCCM-Abschnitt 2.6.2 verweist . Ich gebe zu, dass ich Sie nicht dafür verantwortlich mache, dass Sie nicht gelesen haben. Wie auch immer, ich habe gerade mit der rechten Maustaste auf Ihren Avatar in Chromium geklickt und "Bild kopieren" ausgewählt:

  1. Sehen Sie, welche Ziele verfügbar sind:

    $ xclip -selection clipboard -t TARGETS -o
    TARGETS
    image/png
    text/html
    
  2. Beachten Sie das image/pngZiel; Mach weiter und hol es dir:

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

HINWEIS: Einige Untersuchungen haben ergeben, dass Sie xclip von SVN-Revision 81 (ab April 2010) oder höher benötigen, um die erforderliche -tOption zu erhalten. Oder wenden Sie die Patches selbst an.

derobert
quelle
Ich verwende 0.12, das von angeboten wird, pacmandamit ich die Upstream-Version bekommen muss. Vielen Dank!
Lerp
Fehler: Zielbild / PNG nicht verfügbar. Debian Stretch
Stígandr
@ Stígandr Ich habe bestätigt, dass dies immer noch auf meinem Computer funktioniert, auf dem Debian-Tests (Stretch) ausgeführt werden. Vielleicht haben Sie ein JPEG oder eine andere Art von Bild kopiert? Am besten stellen Sie eine neue Frage, anstatt sie in Kommentaren zu debuggen.
Derobert
3

xclip funktioniert nicht mit Bildern auf meinem Computer (svn84-4):

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

Aber es gibt ein anderes Programm, das Screenshots macht und diese ganz einfach in eine Datei einfügt : scrot :

scrot /tmp/myImage.png
Gérard
quelle