如何使用PyGObject将Linux剪贴板中的截图保存为本地PNG文件
完整实现代码
import gi gi.require_version("Gtk", "3.0") gi.require_version("GdkPixbuf", "2.0") from gi.repository import Gtk, Gdk, GdkPixbuf # 你已有的剪贴板实例初始化逻辑 clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD) # 同步读取剪贴板内的图像数据 image_pixbuf = clipboard.wait_for_image() if image_pixbuf is not None: # 保存图像到指定路径,第二个参数指定存储格式为png save_status = image_pixbuf.savev("/home/user/filename.png", "png", [], []) if save_status: print("截图保存成功") else: print("保存失败,请检查路径写入权限、父目录是否存在") else: print("剪贴板中未检测到有效图像数据")
补充逻辑说明
- 新增
GdkPixbuf依赖导入,该库用于处理图像数据的序列化存储操作 - 调用
clipboard.wait_for_image()方法同步读取剪贴板内容,若剪贴板内存在图像会返回GdkPixbuf.Pixbuf格式对象,无符合要求的图像则返回None - 做空值判断避免空指针报错,确认获取到图像后调用
savev()方法写入指定路径,方法返回布尔值标识保存是否成功 - 可根据实际需求扩展异常捕获逻辑,处理特殊场景下的IO错误
内容的提问来源于stack exchange,提问作者Santhosh
相关产品推荐
相关产品推荐

