【问题标题】:linux image from clipboard剪贴板中的linux图像
【发布时间】:2011-10-14 01:37:01
【问题描述】:

我想访问 linux 剪贴板中的图形,将其保存为文件。 我在 Python/Tkinter 程序中执行此操作,所以我询问了它(http://stackoverflow.com/questions/6817600/save-the-image-in-the-clipboatd-in-python-tkinter)但在内部(在 python 中)没有希望。

相反,我可以接受使用外部实用程序来执行此操作 - 但我找不到。

您知道任何基于终端的实用程序能够获取剪贴板内容并将其保存为图像文件吗?

【问题讨论】:

  • 谢谢,但我希望更通用的东西,能够获取剪贴板内容,而不是一种快照实用程序。我仍然无法相信这样的实用程序不存在,尽管我在某处读到 X11 剪贴板管理有点混乱......
  • 相关:检测剪贴板中的变化:C APIbash

标签: linux graphics x11 utilities


【解决方案1】:

我找不到任何工具来做这件事,所以我写了这个小 Python 脚本。它需要 pygtk。

#!/usr/bin/python
"""
Save image from clipboard to file
"""

import sys
import glob
from optparse import OptionParser

def def_file():
    """
    Return default file name
    """
    files = glob.glob("img???.png")
    if len(files) < 1:
        return 'img001.png'
    maxf = 0
    for f in files:
        try:
            n = int(f[3:6])
            maxf = max(n, maxf)
        except ValueError:
            pass
    return 'img{:03d}.png'.format(maxf+1)


usage = """%prog [option] [filename]
Save image from clipboard to file in PNG format."""

op = OptionParser(usage=usage)
op.add_option("-o", "--open", action="store_true", dest="open", default=False, 
        help="Open saved file with default program (using xdg-open)")
(options, args) = op.parse_args()

if len(args) > 1:
    parser.error("Only one argument expected")
    sys.exit(1)
elif len(args) == 1:
    fname = args[0]
else:
    fname = def_file()

import gtk
clipboard = gtk.clipboard_get()
image = clipboard.wait_for_image()
if image is not None:
    image.save(fname, "png")
    print "PNG image saved to file", fname
    if options.open:
        import subprocess
        subprocess.call(["xdg-open", fname])
else:
    print "No image in clipboard found"

【讨论】:

  • 感谢脚本!我希望你不介意我为它创建了一个public Github Gist,以便分发贡献者轻松打包它。
【解决方案2】:

复制:

xclip -selection clipboard in.png

更短:

xclip -se c in.png

粘贴:

xclip -selection clipboard -target image/png -out > out.png

短版:

xclip -se c -t image/png -o > out.png

来自这个 Unix 和 Linux 问题:

https://unix.stackexchange.com/questions/145131/copy-image-from-clipboard-to-file

您也可以使用image/tiffimage/jpeg

【讨论】:

  • 我的电脑显示错误..Error: target image/png not available
  • @MerhawiFissehaye,首先运行xclip -o -target TARGETS -selection clipboard 以了解哪些所有目标都可以应用于“当前”剪贴板数据。
  • 错误:目标图像/png 不可用这可能是一条红鲱鱼消息,可能表明您在剪贴板中没有正确的图像.. 请参阅@rraadd88 评论
【解决方案3】:

看看xselxclip

否则,您可能会找到一些more information on wikipedia

【讨论】:

    【解决方案4】:

    使用 pyqt 很容易。

    def copy_image():
        clipboard=variableofapp.clipboard()
        if (clipboard.mimeData().hasImage()):
            img=x.pixmap()
            img.save('file.png',"PNG")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多