Salin gambar dari clipboard ke file

28

Apakah mungkin untuk mengambil gambar dari clipboard dan mengeluarkannya ke file (menggunakan X)?

Saya bisa melakukan ini dengan teks:

$ xclip -selection c -o > file.text

Tetapi ketika saya mencoba di atas dengan gambar tidak ada yang tertulis.


Alasan saya ingin melakukan ini adalah saya tidak memiliki editor gambar yang diinstal, dan itu membuat saya berpikir apakah saya bisa melakukan ini tanpa menginstalnya.

Lerp
sumber

Jawaban:

49

Anda sebenarnya dapat melakukan ini dengan xclip. Rahasianya adalah -topsi, yang merujuk Anda ke Bagian 2.6.2 ICCCM . Yang saya akui saya tidak menyalahkan Anda karena gagal membaca ... Bagaimanapun, sebuah contoh, saya baru saja mengklik kanan avatar Anda di Chromium dan memilih "Salin Gambar":

  1. Lihat target apa yang tersedia:

    $ xclip -selection clipboard -t TARGETS -o
    TARGETS
    image/png
    text/html
    
  2. Catat image/pngtargetnya; maju dan dapatkan:

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

CATATAN: Beberapa penelitian menunjukkan bahwa Anda memerlukan xclip dari SVN revisi 81 (dari April 2010) atau lebih baru untuk memiliki -topsi yang diperlukan . Atau terapkan tambalan sendiri.

derobert
sumber
Saya menggunakan 0,12, yang ditawarkan oleh pacmanjadi saya harus mendapatkan versi upstream. Terima kasih!
Lerp
Kesalahan: gambar target / png tidak tersedia ini sudah tua. Debian stretch
Stígandr
@ Stígandr Saya mengkonfirmasi ini masih berfungsi pada mesin saya yang menjalankan pengujian Debian (peregangan). Mungkin Anda menyalin JPEG atau jenis gambar lain? Mungkin lebih baik untuk mengajukan pertanyaan baru daripada men-debug dalam komentar.
derobert
3

xclip tidak berfungsi dengan gambar di komputer saya (svn84-4):

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

Tetapi ada program lain yang mengambil screenshot dan menempelkannya ke file, sangat sederhana: scrot :

scrot /tmp/myImage.png
Gérard
sumber