Установить буфер обмена для изображения - 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»})'