macOS 中的二进制(图像)数据剪贴板

发布于 2024-09-07 05:11:14 字数 236 浏览 4 评论 0 原文

当我将内容复制到剪贴板时,我可以将它们转储到控制台窗口中或使用以下命令重定向到文件:

pbpaste > 但是,

如果我右键单击图像并将其复制到浏览器中,则尝试:

pbpaste > out.jpg

没有输出任何内容。

macOS 将剪贴板中的图像数据存储在哪里?有什么方法可以从命令行访问它,类似于 pbpaste?

When I copy things to the clipboard, I can dump them into my console window or redirect to a file using:

pbpaste > out.txt

But if I right click an image and copy it in a browser, then attempt:

pbpaste > out.jpg

Nothing is outputted.

Where does macOS store the image data in the clipboard? Is there some way to access it from the commandline, similarly to pbpaste?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

天冷不及心凉 2024-09-14 05:11:14

回答来自 Jeff 一个 实用程序 是编写的目的是让您将图形粘贴到 PNG 中。

In response to a question from Jeff a utility was written to let you paste graphics to a PNG.

感受沵的脚步 2024-09-14 05:11:14

man pbpaste 表示它只查找纯文本、富文本或封装的 postscript。我不知道有什么命令可以处理更通用的粘贴板数据,但编写一个命令可能并不难。

man pbpaste says that it only looks for plain text, rich text, or encapsulated postscript. I don't know any command that handles more general pasteboard data, but it probably wouldn't be hard to write one.

凹づ凸ル 2024-09-14 05:11:14

对于任何寻找如何在剪贴板中存储任意二进制数据的人来说,这似乎可能不切实际。在某种程度上,我相信是因为粘贴板只接受少数类型。它们都不适合任意未格式化的数据。

您似乎可以对粘贴板撒谎,并将任意数据放入非字符串类型之一,例如 PDF PasteboardType 并稍后从剪贴板读回相同的数据。

使用 Python pasteboard 包(一个带有 Python 绑定的小型 Objective-C 程序)可以演示:

import secrets
data = secrets.token_bytes(100) # generate random bytes
import pasteboard
pb = pasteboatd.Pasteboard()
# set the data to the pasteboard
pb.set_contents(data, pasteboard.PDF)
# get the contents back, same as before
pb.get_contents(pasteboard.PDF) == data # True

For anyone looking for how to store arbitrary binary data in the clipboard, it seems this may not be practical. In part, I believe because there's only a handful of types the pasteboard accepts. None of which are suitable for arbitrary unformatted data.

You can seemingly lie to the pasteboard and place arbitrary data into one of the non-string types like, PDF pasteboardType and later read the same data back from the clipboard.

Using the Python pasteboard package, (a small Objective-C program with Python bindings) this can be demonstrated:

import secrets
data = secrets.token_bytes(100) # generate random bytes
import pasteboard
pb = pasteboatd.Pasteboard()
# set the data to the pasteboard
pb.set_contents(data, pasteboard.PDF)
# get the contents back, same as before
pb.get_contents(pasteboard.PDF) == data # True
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文