Я могу скопировать изображение в Gimp и вставить его в документ OpenOffice.
Как это сделать (скопировать или вставить изображение) из командной строки?
Я могу скопировать изображение в Gimp и вставить его в документ OpenOffice.
Как это сделать (скопировать или вставить изображение) из командной строки?
Ответы:
Как показано здесь , ключ для вставки двоичных данных в файл xclip
- это указать, какие типы носителей у вас есть в буфере обмена. Для PNG вы можете:
xclip -selection clipboard -t image/png -o > "`date '+%Y-%m-%d_%T'`.png"
Или image/jpeg
и .jpg
для JPEG.
Так что теперь ~/Dropbox/.mybashrc
я добавляю псевдоним (clipboard2photo) для легкой вставки в файл изображения (возможно, когда-нибудь он будет у нас на Nautilus ).
Я считаю, что причина, по которой сценарий Льва Алексеева иногда не работает (в некоторых системах), объясняется в этом ответе на аналогичный вопрос. Важная часть цитируется здесь:
Одна странность, которая отличается от большинства других систем: если программа, владеющая выделением (буфер обмена), исчезает, то же самое происходит и с выделением.
Когда я запускаю скрипт Лео в оболочке Python, он работает, пока работает оболочка. Поэтому я думаю, что данные буфера обмена теряются, когда скрипт завершается. Решение, опубликованное в ответе, работает на меня:
#!/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: для полноты добавьте скрипт clipboard-> file:
#!/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", {})
Следующий скрипт python / pygtk выполняет свою работу:
#!/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]);
(Источник: http://ubuntuforums.org/showthread.php?t=1689889 )
Чтобы использовать это, sudo apt-get install python pygtk
вставьте приведенный выше код в скрипт, chmod +x
чтобы сделать его исполняемым, и все будет хорошо.
wget http://upload.wikimedia.org/wikipedia/commons/d/d9/Test.png && ./test.py Test.png
где test.py это именно то, что здесь вставлено. Хорошо вставляет в Gimp.