Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I can copy image in Gimp and paste it to OpenOffice document.

How to do it (copy or paste image) from command line?

share|improve this question
    
What does past "paste from clipboard from command line" mean? Probably the same but only for copy: unix.stackexchange.com/questions/30093/… –  Ciro Santilli Aug 13 at 9:35
    
More general question for any file type: superuser.com/questions/796376/… –  Ciro Santilli Aug 13 at 11:50

3 Answers 3

up vote 7 down vote accepted

I believe the reason why Leo Alekseyev script does not work sometimes (on some systems) is explained in this answer to a similar question. Important part quoted here:

One oddity that is different from most other systems: if the program owning the selection (clipboard) goes away, so does the selection.

When i run Leo's script in python shell, it is working, as long as the shell is running. So i think the clipboard data is lost, when the script is terminated. The solution posted in the answer, is working for me:

#!/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()
share|improve this answer
    
It's a bit annoying how to have to quit it manually, but at least it works :). Thanks! –  crazy2be Jun 24 at 0:05

The following python/pygtk script does the job:

#!/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]);

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

To use this, sudo apt-get install python pygtk, paste the above code into a script, chmod +x to make executable, and you should be good to go.

share|improve this answer
    
Copied little png picture using this script. Can't paste it neither to OpenOffice nor into Gimp ("There is no image data in clipboard to paste"). Don't work. After copying actual picture in Gimp and using this script the buffer reverts to text that was before that. –  Vi. Dec 15 '11 at 14:22
    
I just tried: wget http://upload.wikimedia.org/wikipedia/commons/d/d9/Test.png && ./test.py Test.png, where test.py is exactly what's pasted here. Pastes fine into Gimp. –  Leo Alekseyev Dec 15 '11 at 14:34
    
Tried with Test.png. "There is no image data in clipboard to paste". Does it depend on running Gnome? How to debug this? I can successfully copy image in Gimp and paste in Openoffice, so in general copying works. –  Vi. Dec 16 '11 at 14:04
    
E: Unable to locate package pygtk –  qed Jan 4 at 20:00

Try xclip, it reads from stdin and should allow you to do

xclip < image.jpg

to copy the image to the clipboard.

UNTESTED

share|improve this answer
    
-1, I don't want "???##JFIF###..." in my document. –  Vi. Jun 25 '11 at 23:46
    
Actually I did use this a lot, and, since about last year, it doesn't work anymore. Still looking for a solution. –  Drasill Jul 8 '11 at 13:35
2  
Doesn't work here... xclip is text only on my Ubuntu 12.04 –  cmc Mar 28 '13 at 11:46

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.