如何像截图一样将 matplotlib / seaborn 图像复制到内存中

问题描述 投票:0回答:1

我正在使用seaborn 绘制热图。我想像截图一样直接将此图像复制到剪贴板。我无法找到任何解决方案来解决这个问题。我目前的解决方案如下

def copy_image_to_memory(image: plt.figure, close: bool = False) -> None:
    from io import BytesIO
    from subprocess import run
    
    plt.savefig(buffer := BytesIO(), format='png', facecolor='white')
    buffer.seek(0)
    
    run('pbcopy', input=buffer.read(), check=True, shell=True)
    print("Image copied to memory")
    
    if close:
        print("Closing image")
        plt.close()
    else:
        print("Image not closed")

此解决方案的问题在于它将图像复制为字节字符串。这无法复制为文件或屏幕截图。

如有任何帮助,我们将不胜感激。

python matplotlib
1个回答
0
投票

在 Mac 上,您可以使用 python “shell out”到 pbcopy。

python可以发送文本到Mac剪贴板吗

或者在 Windows 计算机上,您可以尝试 win32clipboard 模块。

如何使用 Python 读取 Windows 剪贴板中的文本?

我怀疑 linux 解决方案是谷歌无法找到的,就像这些一样。

© www.soinside.com 2019 - 2024. All rights reserved.