Я можу скопіювати зображення в 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: для повноти додавання буфера обміну-> сценарій файлу:
#!/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.