Macos 将剪贴板设置为image-pbcopy

Macos 将剪贴板设置为image-pbcopy,macos,bash,clipboard,pbcopy,Macos,Bash,Clipboard,Pbcopy,如何使用pbcopy将图像设置为剪贴板 这不起作用: cat image.png | pbcopy 从文件中: 输入作为ASCII数据放置在粘贴板中,除非它以封装的PostScript(EPS)文件头或RTF文件头开头,在这种情况下,它作为这些数据类型之一放置在粘贴板中。 这听起来好像不支持图像数据,所以它不起作用。如前所述,这不适用于pbcopy,但您可以编写一个小的objective-c程序来实现这一点:。然后您可以发布: cat image.png | impbcopy - 更新的答案

如何使用pbcopy将图像设置为剪贴板

这不起作用:

cat image.png | pbcopy

从文件中:

输入作为ASCII数据放置在粘贴板中,除非它以封装的PostScript(EPS)文件头或RTF文件头开头,在这种情况下,它作为这些数据类型之一放置在粘贴板中。
这听起来好像不支持图像数据,所以它不起作用。

如前所述,这不适用于
pbcopy
,但您可以编写一个小的objective-c程序来实现这一点:。然后您可以发布:

cat image.png | impbcopy -

更新的答案

实际上,您可以在命令行中使用Applescript将JPEG图像放入剪贴板,如下所示:

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
并将图像粘贴到文档中,与通常的⌘-五,

原始答案

您无需编译任何其他软件,只需使用OS X中提供的工具即可完成此操作。基本上,剪贴板无法存储二进制文件,因此您需要将二进制图像编码为简单的ASCII数据,如下所示:

# Copy image to clipboard
uuencode SomeFile.jpg - | pbcopy
uudecode
当返回到另一个方向时

# Paste from clipboard to image file
pbpaste | uudecode -o AnotherFile.jpg

您还可以将其与ImageMagick的
convert
工具结合使用。例如,要将pdf的第一页复制为光栅图像:
convert input.pdf[0]png:-| impbcopy-
如果您不想编译任何内容,这是一个很好的答案。下面是一个单行函数,您可以将其放入.bash_配置文件或.bashrc中使用,而无需记住详细信息,用法:impbcopy。impbcopy(){osascript-e'将剪贴板设置为(读取(POSIX文件“\”$PWD/$1\”)为JPEG图片)}png文件呢?当我将
JPEG
替换为
PNG
@dawnson时,它似乎不起作用。也许可以尝试一个新问题,该问题有前后链接,我们将看看是否有人知道任何新的内容……与另一个问题的答案非常相似,原始答案是完美的:)错误-
uuencode
允许任何二进制代码的C&P将文件发送到PB/frpm