Установить буфер обмена для изображения - pbcopy - PullRequest
8 голосов
/ 03 августа 2011

Как установить изображение в качестве буфера обмена с помощью pbcopy?

Это не работает:

cat image.png | pbcopy

Ответы [ 3 ]

9 голосов
/ 01 июня 2015

Обновленный ответ

На самом деле вы можете поместить изображение JPEG в буфер обмена, используя в командной строке Applescript, например:

osascript -e 'set the clipboard to (read (POSIX file "/Users/mark/Desktop/a.jpg") as JPEG picture)'

Затем можно проверитьчто находится в буфере обмена с:

osascript -e 'clipboard info'

JPEG picture, 175960, «class 8BPS», 641904, GIF picture, 124637, «class jp2 », 102086, TIFF picture, 1481282, «class PNGf», 412940, «class BMP », 1477734, «class TPIC», 609835

А также вставьте изображение в документ с обычным -V.

Оригинальный ответ

Вы можете сделать это без необходимости компилировать какое-либо дополнительное программное обеспечение и просто использовать инструменты, предоставляемые в OS X. По сути, буфер обмена не может хранить двоичные файлы, поэтому вам необходимо uuencode ваше двоичное изображение в простые данные ASCII, такие как:

# Copy image to clipboard
uuencode SomeFile.jpg - | pbcopy

и uudecode при обратном пути

# Paste from clipboard to image file
pbpaste | uudecode -o AnotherFile.jpg
8 голосов
/ 25 января 2014

Как уже говорилось, это не будет работать с pbcopy, но вы можете написать небольшую программу target-c для этого: http://www.alecjacobson.com/weblog/?p=3816. Тогда вы можете выдать:

cat image.png | impbcopy -
3 голосов
/ 03 августа 2011

Из документации:

Входные данные помещаются в монтажную область как данные ASCII, если только они не начинаются с заголовка файла Encapsulated PostScript (EPS) или заголовка файла с расширенным текстовым форматом (RTF), и в этом случае они помещаются в монтажную область как один из этих типов данных.

Не похоже, что данные изображения поддерживаются, поэтому не будут работать.

...