Я знаю, что в Linux есть несколько типов selection
: primary
, secondary
и clipboard
, первые два я рассматриваю как краткосрочный буфер обмена, а clipboard
как долгосрочный буфер обмена. Я прав?
Теперь, поскольку выбор primary
/ secondary
только для текста, я хочу скопировать изображение в буфер обмена long-term
, я не знаю, связан ли с ним тип MIME. Поскольку Screen Capture
может скопировать снимок экрана в буфер обмена, я думаю, что есть некоторые метаданные, которые описывают его в формате изображения. Но такие команды, как xsel
, не дают никаких опций при работе с данными буфера обмена изображения. Ни копирование файла изображения в буфер обмена, ни выгрузка изображения из буфера обмена в файл не поддерживаются.
После поиска в Google я обнаружил некоторую поддержку в Python / Gtk:
import pygtk
pygtk.require('2.0')
import gtk
import os
def copy_image(f):
assert os.path.exists(f), "file does not exist"
clipboard = gtk.clipboard_get()
img = gtk.Image()
img.set_from_file(f)
clipboard.set_image(img.get_pixbuf())
clipboard.store()
Я сам не пробовал, потому что я не знаком с Python, но похоже, что по крайней мере некоторые программы поддерживают буфер обмена изображениями.
Вот вопрос, так как я думаю, что буфер обмена в GNOME может не иметь MIME-тип. У большинства приложений Gnome одинаковое соглашение по формату изображений?
И на какие документы мне следует ссылаться, если я хочу запрограммировать буфер обмена изображениями для обмена изображениями между различными приложениями, например, один хочет 8-битный индексированный битовый массив, а другой хочет 24-битный RGB битовый массив?