截图工具基础功能类
以下是一个截图工具基础功能类的设计示例(使用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
云服务器活动(最新)

扫码添加站长好友
文章投稿、业务合作、咨询等
技术交流、问题反馈等