Linux'ta komut satırından bir panoya resim nasıl kopyalanır?


14

Gimp'te görüntü kopyalayıp OpenOffice belgesine yapıştırabilirim.

Komut satırından nasıl yapılır (kopyala veya yapıştır)?


Geçmiş "panodan komut satırından yapıştır" ne anlama geliyor? Muhtemelen aynı ama sadece kopya için: unix.stackexchange.com/questions/30093/…
Ciro Santilli 事件 改造 中心 法轮功 六四 事件

Herhangi bir dosya türü için daha genel soru: superuser.com/questions/796376/…
Ciro Santilli 11

Yanıtlar:


5

Bulunan gibi burada birlikte, anahtar bir dosyaya ikili veri yapıştırmaya xclipneyi anlatmak olduğunu Ortam Türleri panoya var. PNG için şunları yapabilirsiniz:

xclip -selection clipboard -t image/png -o > "`date '+%Y-%m-%d_%T'`.png"

Ya image/jpegve .jpgJPEG için.

Bu yüzden şimdi benim ~/Dropbox/.mybashrcgörüntü dosyasına kolayca yapıştırmak için bir takma ad (clipboard2photo) ekledim (belki bir gün Nautilus'ta olacağız ).


İlk bağlantıda belirtildiği gibi: NOT: Bazı araştırmalar, gerekli -t seçeneğine sahip olmak için SVN revizyon 81'den (Nisan 2010'dan itibaren) xclip'e ihtiyacınız olduğunu göstermektedir. Veya yamaları kendiniz uygulayın .
i336_

7

Benzer bir sorunun bu cevabında Leo Alekseyev senaryosunun bazen (bazı sistemlerde) çalışmamasının nedeninin açıklandığına inanıyorum . Burada alıntılanan önemli bölüm:

Diğer sistemlerden farklı bir tuhaflık: Seçime (programa) sahip olan program kaybolursa, seçim de ortadan kalkar.

Leo'nun komut dosyasını python kabuğunda çalıştırdığımda, kabuk çalışıyor olduğu sürece çalışıyor. Bu yüzden komut dosyası sonlandırıldığında pano verilerinin kaybolduğunu düşünüyorum. Cevaba gönderilen çözüm benim için çalışıyor:

#!/usr/bin/env python
import gtk 
import sys

count = 0
def handle_owner_change(clipboard, event):
    global count
    print 'clipboard.owner-change(%r, %r)' % (clipboard, event)
    count += 1
    if count > 1:
       sys.exit(0)

image = gtk.gdk.pixbuf_new_from_file(sys.argv[1])
clipboard = gtk.clipboard_get()
clipboard.connect('owner-change', handle_owner_change)
clipboard.set_image(image)
clipboard.store()
gtk.main()

_Vi'den güncelleme: Tamlık için clipboard-> dosya betiğini ekleme:

#!/usr/bin/python
import gtk, pygtk
pygtk.require('2.0')
import sys, os

clipboard = gtk.clipboard_get()
img = clipboard.wait_for_image()
img.save(sys.argv[1], "png", {})

Manuel olarak çıkmak zorunda kalmak biraz can sıkıcı, ama en azından işe yarıyor :). Teşekkürler!
crazy2be

1

Aşağıdaki python / pygtk betiği işi yapar:

#!/usr/bin/python
import gtk, pygtk
pygtk.require('2.0')
import sys, os

def copy_image(f):
    assert os.path.exists(f), "file does not exist"
    image = gtk.gdk.pixbuf_new_from_file(f)
    clipboard = gtk.clipboard_get()
    clipboard.set_image(image)
    clipboard.store()

copy_image(sys.argv[1]);

(Kaynak: http://ubuntuforums.org/showthread.php?t=1689889 )

Bunu kullanmak için sudo apt-get install python pygtk, yukarıdaki kodu bir komut dosyasına yapıştırın, chmod +xçalıştırılabilir hale getirin ve gitmek için iyi olmalısınız.


Bu komut dosyasını kullanarak küçük png resmi kopyaladı. Ne OpenOffice'e ne de Gimp'e yapıştırılamıyor ("Yapıştırılacak panoda görüntü verisi yok"). Çalışma. Gimp'de gerçek resmi kopyaladıktan ve bu komut dosyasını kullandıktan sonra, arabellek bundan önceki metne döner.
Vi.

Sadece denedim: wget http://upload.wikimedia.org/wikipedia/commons/d/d9/Test.png && ./test.py Test.pngBurada test.py tam olarak buraya yapıştırılan şeydir. Gimp'e iyi yapışır.
Leo Alekseyev

Test.png ile denendi. Msgstr "Panoya yapıştırılacak görüntü verisi yok". Gnome'u çalıştırmaya bağlı mı? Bu hata ayıklama nasıl yapılır? Gimp'te görüntüyü başarıyla kopyalayabilir ve Openoffice'e yapıştırabilirim, bu yüzden genel kopyalama işleri.
Vi.

E: pygtk
qed
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.