是否可以使用Python将图像复制到Windows剪贴板,而不会在过程中失去透明度



在过去的几个小时里,我一直在努力寻找一个明确的答案,但我遇到的只是一堆不确定的、冲突的或似乎与python信息不兼容的信息。

output = io.BytesIO()
image.save(output, "BMP")
data = output.getvalue()[14:]
output.close()
win32clipboard.OpenClipboard()
win32clipboard.EmptyClipboard()
win32clipboard.SetClipboardData(win32clipboard.CF_DIB, data)
win32clipboard.CloseClipboard()

例如,我发现的上述方法可以将图像粘贴到应用程序Discord中,但会导致透明度如我所预期的那样丢失。然而,替换传递给这些方法的任何信息都会得到无效的数据。

这个2012年的问题正是我想要的,但它是一个不确定的(根据我目前的理解)信息的混合体,似乎与我读到的其他信息相冲突。

如果我错了,请纠正我,但根据我所读到的内容,windows剪贴板中不支持PNG,但是,您可以创建适用于某些程序的PNG格式。以下代码至少适用于word和chrome。

output = BytesIO()
final.save(output, "PNG")
data = output.getvalue()
output.close()
win32clipboard.OpenClipboard()
win32clipboard.EmptyClipboard()
win32clipboard.SetClipboardData(win32clipboard.RegisterClipboardFormat('PNG'),data)
win32clipboard.CloseClipboard()

其中"最终"是PIL图像对象

最新更新