linux изображение из буфера обмена - PullRequest
13 голосов
/ 27 июля 2011

Я хотел бы получить доступ к графике в буфере обмена Linux, чтобы сохранить ее в виде файла.Я делаю это в программе Python / Tkinter, поэтому я спросил об этом (/4848371/sohranit-izobrazhenie-v-clipboatd-v-python-tkinter), но внутренне (в python) надежды нет.

Вместо этого я могу согласиться использовать внешнюю утилиту для этого- пока я не могу его найти.

Вам известна какая-либо терминальная утилита, способная взять содержимое буфера обмена и сохранить его в виде файла изображения?

Ответы [ 3 ]

13 голосов
/ 25 августа 2012

Я не смог найти никакого инструмента для этого, поэтому я написал этот небольшой скрипт на Python.Требуется pygtk.

#!/usr/bin/python
"""
Save image from clipboard to file
"""

import sys
import glob
from optparse import OptionParser

def def_file():
    """
    Return default file name
    """
    files = glob.glob("img???.png")
    if len(files) < 1:
        return 'img001.png'
    maxf = 0
    for f in files:
        try:
            n = int(f[3:6])
            maxf = max(n, maxf)
        except ValueError:
            pass
    return 'img{:03d}.png'.format(maxf+1)


usage = """%prog [option] [filename]
Save image from clipboard to file in PNG format."""

op = OptionParser(usage=usage)
op.add_option("-o", "--open", action="store_true", dest="open", default=False, 
        help="Open saved file with default program (using xdg-open)")
(options, args) = op.parse_args()

if len(args) > 1:
    parser.error("Only one argument expected")
    sys.exit(1)
elif len(args) == 1:
    fname = args[0]
else:
    fname = def_file()

import gtk
clipboard = gtk.clipboard_get()
image = clipboard.wait_for_image()
if image is not None:
    image.save(fname, "png")
    print "PNG image saved to file", fname
    if options.open:
        import subprocess
        subprocess.call(["xdg-open", fname])
else:
    print "No image in clipboard found"
6 голосов
/ 17 января 2015

Копия:

xclip -selection clipboard in.png

Короче:

xclip -se c in.png

Paste:

xclip -selection clipboard -target image/png -out > out.png

Укороченная версия:

xclip -se c -t image/png -o > out.png

Из этого вопроса Unix & Linux:

https://unix.stackexchange.com/questions/145131/copy-image-from-clipboard-to-file

Вы также можете использовать image/tiff и image/jpeg.

0 голосов
/ 11 августа 2011

Взгляните на xsel и xclip .

В противном случае, вы можете найти дополнительную информацию в Википедии .

...