截图工具基础功能类

作者:IT技术圈子 阅读:0 日期:2025年09月26日

以下是一个截图工具基础功能类的设计示例(使用Python语言,基于`Pillow`和`pyautogui`库实现),涵盖核心截图功能及简单操作:

```python import pyautogui from PIL import Image import os import time

class ScreenshotTool: def __init__(self): self.screenshot = None self.save_path = "screenshots"

# 创建保存目录(如果不存在) if not os.path.exists(self.save_path): os.makedirs(self.save_path)

def capture_full_screen(self): """截取全屏""" self.screenshot = pyautogui.screenshot() return self.screenshot

def capture_region(self, x, y, width, height): """截取指定区域""" self.screenshot = pyautogui.screenshot(region=(x, y, width, height)) return self.screenshot

def capture_active_window(self): """截取活动窗口(需系统支持,Windows示例)""" try: # Windows下通过坐标模拟(非完美方案,实际可能需要win32api) # 这里简化处理,实际建议使用更精确的库如`pygetwindow` window = pyautogui.getActiveWindow() if window: self.screenshot = pyautogui.screenshot(region=( window.left, window.top, window.width, window.height )) return self.screenshot else: print("未检测到活动窗口") return None except Exception as e: print(f"截取活动窗口失败: {e}") return None

def save_screenshot(self, filename=None): """保存截图""" if self.screenshot is None: print("没有可保存的截图") return False

timestamp = time.strftime("%Y%m%d_%H%M%S") if not filename: filename = f"screenshot_{timestamp}.png"

save_path = os.path.join(self.save_path, filename) self.screenshot.save(save_path) print(f"截图已保存至: {save_path}") return True

def show_screenshot(self): """显示截图(需图形界面支持)""" if self.screenshot: self.screenshot.show() else: print("没有可显示的截图")

# 使用示例 if __name__ == "__main__": tool = ScreenshotTool()

# 示例1:全屏截图 tool.capture_full_screen() tool.save_screenshot("fullscreen.png")

# 示例2:区域截图(左上角100,100,宽300,高200) tool.capture_region(100, 100, 300, 200) tool.save_screenshot("region.png")

# 示例3:活动窗口截图(可能不精确) # tool.capture_active_window() # tool.save_screenshot("window.png") ```

2. 高级功能:

  • 添加编辑功能(画笔、文字、箭头等)
  • 支持OCR文字识别
  • 添加延迟截图功能
  • 支持复制到剪贴板

3. GUI界面:

  • 使用`tkinter`/`PyQt`添加图形界面

4. 性能优化:

  • 异步保存避免界面卡顿
  • 压缩图片质量选项

这个基础类可以根据实际需求进一步扩展,例如添加错误处理、日志记录或集成到更大的应用程序中。

  END