"""剪贴板图片保存为 PNG — win32clipboard + PIL 混合方案 检测用 ctypes (快), 保存用 PIL (兼容性好) """ import sys import ctypes def save_clipboard_image(output_path): # 快速检测 (ctypes, <1ms) if not ctypes.windll.user32.IsClipboardFormatAvailable(8): # CF_DIB print("NO_IMAGE", file=sys.stderr) sys.exit(1) # 保存 (PIL ImageGrab, ~80ms) try: from PIL import ImageGrab img = ImageGrab.grabclipboard() if img is None: sys.exit(1) img.save(output_path, "PNG", optimize=False) print(output_path) except Exception as e: print(f"ERROR: {e}", file=sys.stderr) sys.exit(1) if __name__ == "__main__": if len(sys.argv) < 2: print("Usage: clipboard-save.py ", file=sys.stderr) sys.exit(1) save_clipboard_image(sys.argv[1])