У меня есть код Python, который редактирует файлы изображений и хотел бы знать, как для добавления данных изображения в буфер обмена операционной системы и получения оттуда.
При поиске кросс-платформенного решения для замены или получения текста буфера обмена в Python, 
было много простых ответов для этого (например, используя встроенный модуль Tkinter с some code). 
Однако эти методы могут использовать только обычный текст, а не другие данные буфера обмена, такие как изображения.
Моя версия Python - 3.x для Windows, но ответ должен быть кросс-платформенным 
(работа в разных операционных системах), а также поддержка других версий Python, таких как 2.x. 
Я думаю, что он должен использовать только встроенные модули Python, и код не должен быть слишком сложным (или иметь объяснение того, что он делает). Это может быть модуль Python, потому что файлы могут быть включены в ту же папку, что и переносимый программный код, чтобы избежать установки.
Есть и другие связанные с этим вопросы, которые, вероятно, работают для изображений, но они поддерживают только отдельную операционную систему. Лучшие были Скопировать изображение в буфер обмена в Python3 и Написать образ в буфер обмена Windows в python с PIL и win32clipboard?. 
Описанные здесь методы (только для Windows) используют следующие шаги:
-  Получить сырые двоичные данные изображения - метод загружает файл изображения с помощью Python Imaging 
 Library (PIL/Pillow), потому что у этого есть другие функции обработки, используемые позже, в простой форме и популярный стандартный API. Это можно сделать с помощью другого модуля (например, Pygame).
-  Создайте переменную объекта файла (для потоковой передачи ввода/вывода в памяти), используя встроенный io 
 модуль. Для Python 2.x используетсяfrom cStringIO import StringIO, но с Python 3,
 лучшийio.BytesIOтип объекта двоичного потока - более старые теперь разрешают только текст.
-  Сохранение данных изображения в формате BMP (формат растрового изображения/растрового изображения Windows), 
 к переменной объекта файла с предыдущего шага. Метод, использующий PIL/Pillow, сначала преобразует эти данные с.convert("RGB")для переменной, содержащей ее.
-  Получить полное содержимое буфера памяти переменных объекта объекта в виде двоичных данных (объект bytes),
 отрежьте его из положения 14, чтобы удалить 14-байтовый заголовок формата BMP/DIB, затем сохраните его
 как переменную. Метод говорит, что нарезка этих данных работает на 32 или 64-битных системах, но
 нужен API буфера обмена Windows, поэтому он не работает для другого формата файла.
-  Закройте буфер памяти и скопируйте данные изображения с предыдущего шага в буфер обмена. 
 Этот метод используется в Windows с помощью частиwin32clipboardмодуля расширения -
 он открывает буфер для использования, очищает его, устанавливает его значение в переменную данных изображения из файла предыдущий шаг (с использованием типа BMP/DIB) закрывает открытый буфер обмена.
Кроме того, есть простой текстовый модуль с межплатформенным буфером обмена, называемый Pyperclip, который является только один файл для версии 1.5.6 и, возможно, имеет код, который может обрабатывать данные изображения.
