Установить буфер обмена для изображения - pbcopy

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

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

cat image.png | pbcopy

5 ответов

Решение

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

cat image.png | impbcopy -

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

Вы можете поместить изображение 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

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

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

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

одна альтернатива, которая работает как для изображений, так и для анимированных gif:

      osascript -e 'tell app "Finder" to set the clipboard to ( POSIX file "<PATH_TO_IMAGE>" )'

Фактический (или окончательный) ответ на вопрос, как скопировать изображение PNG в буфер обмена macos, был скрыт в комментариях к ответу Марка. Поскольку это не очевидно из ответа Марка, и мне потребовалось некоторое время, чтобы найти его, я оставлю его в качестве ответа здесь:

      osascript -e 'set the clipboard to (read (POSIX file "/Users/mark/Desktop/a.png") as  {«class PNGf»})'
Другие вопросы по тегам