Thunderbird/X11 - 从剪贴板/主要选择粘贴图像失败,除非我先粘贴到 libreoffice

Thunderbird/X11 - 从剪贴板/主要选择粘贴图像失败,除非我先粘贴到 libreoffice

如果我像这样将屏幕截图保存到剪贴板:

xsnap -png -stdout | xclip -selection primary -t image/png

.....然后用鼠标中键粘贴到雷鸟会产生一个以“PNG IHDR”开头的二进制粘贴和一堆乱码(二进制数据)。

如果我改为使用鼠标中键粘贴到 libreoffice第一的(是的,这有效),然后我可以成功地将图像粘贴到雷鸟中。不需要从 libreoffice 进行显式复制(select 或 ctrl-c)。

我预计造成这种情况的一半原因是 libreoffice 在我粘贴到那里时修改了选择。因此,在 libreoffice 完成后,选择缓冲区中有一个可识别的(雷鸟)图像。

但我也可以这样做:

xsnap -png -stdout | xclip -selection primary -t image/png
xclip -selection primary -t image/png -o > beforepastetolibreoffce.png

...并将 beforepastetolibreoffce.png 插入到 Thunderbird 中。

如果我粘贴到 libreoffice 并执行以下操作:

xclip -selection primary -t image/png -o > afterpastetolibreoffice.png

....我最终得到:

-rw-r--r-- 1 dagb dagb  6505 aug.  21 13:48 beforepastetolibreoffice.png
-rw-r--r-- 1 dagb dagb 27914 aug.  21 13:49 afterpastetolibreoffice.png

...证实了我的上述理论。 libreoffice 修改主要选择。

Thunderbird 对 xclip 写入主选择缓冲区的 jpeg 格式同样不满意。

我相信我对这里发生的事情有一个想法。但我该如何进一步调试呢?不确定这里的错误是否出在 xclip 或 firefox 上,即使 libreoffice 可以解析 xclip 写入的选择缓冲区。

答案1

有一个解决方法:Thunderbird 可以处理以 text/html 形式提供的剪贴板中的图像,并且剪贴板中的内容是在 img html 标记中编码为 base64 的图像。

这可以通过如下所示的命令行来实现。它期望剪贴板中的图像为具有 mime 类型 image/png 的二进制数据,并将其编码为 html,并将其存储回具有 mime 类型 text/html 的剪贴板。然后,在雷鸟中,使用粘贴就可以了。下面的命令使用 wl-paste 和 wl-copy,它们与 wayland 剪贴板交互。

wl-paste -t image/png | base64 -w 0 | sed 's/^/<img src="data:image\/jpeg;base64,/g' | sed 's/$/">/g' | wl-copy -t text/html

答案2

安装https://addons.thunderbird.net/en-US/thunderbird/addon/attach-from-clipboard/然后从剪贴板复制图像后使用 CTRL+V (例如,使用某些“选择要复制为屏幕截图的区域”工具)。这应该粘贴图像,而不是二进制数据

相关内容