bookworm-smart-assistant/scripts/clipboard-save.py

30 lines
888 B
Python
Raw Normal View History

"""剪贴板图片保存为 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 <output_path>", file=sys.stderr)
sys.exit(1)
save_clipboard_image(sys.argv[1])