孤客截图工具 Pro - 从开发到打包的完整指南
孤客截图工具 Pro 📸
本文详细记录了一个基于 Python 的桌面截图工具从开发到打包成可执行文件的完整过程,包含技术选型、开发难点、解决方案和打包部署。
一个简单易用、界面美观的桌面截图工具,支持区域截图、全屏截图、复制到剪贴板和保存图片等功能。

✨ 功能特色
🎯 核心功能
- 🖼️ 区域截图 - 自由拖拽选择截图区域
- 🖥️ 全屏截图 - 一键截取整个屏幕
- 💾 保存截图 - 支持 PNG、JPEG 格式保存
- 📋 复制到剪贴板 - 快速复制截图到系统剪贴板
- 👀 实时预览 - 截图后立即预览效果
🎨 界面特色
- 现代化设计 - 简洁美观的圆角按钮设计
- 紧凑布局 - 小巧精致的界面,不占用桌面空间
- 中文界面 - 完全中文化的操作界面
- 状态提示 - 实时显示操作状态和提示信息
⚡ 便捷操作
- 设置菜单 - 快速访问常用功能
- 使用教程 - 内置详细的使用说明
- 反馈系统 - 一键跳转反馈页面
🚀 快速开始
环境要求
- Python 3.6 或更高版本
- Windows 操作系统
安装依赖
pip install pillow pywin32
运行程序
python guke_screenshot_pro.py
📖 使用说明
基本操作
区域截图:点击"区域截图"按钮,拖拽鼠标选择区域
全屏截图:点击"全屏截图"按钮,自动截取整个屏幕
保存截图:截图后点击"保存截图"选择保存位置
复制截图:截图后点击"复制截图"粘贴到其他应用
快捷键 ESC - 取消截图操作
鼠标拖拽 - 选择截图区域
设置菜单
点击右上角的设置按钮(⚙)可以访问:
👤 关于作者 - 查看软件信息和开发者
⬇️ 下载最新版本 - 获取最新版本
📖 使用教程 - 查看详细使用说明
❓ 反馈问题 - 提交问题或建议
🗂️ 项目结构
guke-screenshot-pro/
├── guke_screenshot_pro.py # 主程序文件
├── screenshot_settings.json # 配置文件(自动生成)
├── screenshots/ # 截图保存目录(自动生成)
└── README.md # 说明文档
🚀部分代码
1. 界面设计
采用卡片式布局和圆角按钮设计,提供更好的用户体验:
def create_function_card(self, parent):"""创建功能卡片"""card = Frame(parent, bg='white', relief='flat', bd=1,highlightbackground='#dfe6e9', highlightthickness=1)card.pack(fill=tk.X, pady=(0, 12))# 卡片标题card_title = Label(card, text="✨ 快速操作", font=('微软雅黑', 11, 'bold'),fg='#2d3436', bg='white')card_title.pack(anchor='w', padx=15, pady=(12, 8))
2. 截图功能实现
核心截图功能使用 ImageGrab 模块:
def take_screenshot(self, x1, y1, x2, y2):"""执行截图"""try:if self.screenshot_window:self.screenshot_window.destroy()self.screenshot = ImageGrab.grab(bbox=(x1, y1, x2, y2))self.root.deiconify()self.update_preview()self.status_var.set("✅ 截图完成!")except Exception as e:messagebox.showerror("错误", f"截图失败: {e}")self.cancel_screenshot()
3. 剪贴板复制功能
使用 pywin32 实现图片复制到剪贴板:
def copy_to_clipboard(self):"""复制到剪贴板"""if not self.screenshot:returntry:import win32clipboardfrom io import BytesIOoutput = BytesIO()self.screenshot.save(output, "BMP")data = output.getvalue()[14:] # 移除 BMP 文件头output.close()win32clipboard.OpenClipboard()win32clipboard.EmptyClipboard()win32clipboard.SetClipboardData(win32clipboard.CF_DIB, data)win32clipboard.CloseClipboard()
🔧 技术栈
GUI 框架:Tkinter (Python 内置)
图像处理:Pillow (PIL)
剪贴板操作:pywin32
界面设计:自定义圆角按钮和卡片布局
📝 更新日志
v2.0 (当前版本)
✅ 全新现代化界面设计✅ 圆角按钮和卡片布局
✅ 设置菜单和快捷功能
✅ 实时截图预览
✅ 中文化操作界面
v1.0
✅ 基础截图功能✅ 区域选择和全屏截图
✅ 图片保存和剪贴板复制
🤝 贡献指南
我们欢迎各种形式的贡献!
报告问题:通过Issues 报告bug 或提出建议
功能开发:Fork 项目并提交 Pull Request文档改进:帮助改进文档或翻译
📄 许可证
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情
👨💻 开发者
孤客 - GitHub
如果这个项目对您有帮助,请给个 ⭐️ 支持一下!
🙏 致谢
感谢以下开源项目:
Pillow - 强大的图像处理库
pywin32 - Windows API 访问
⬇️下载地址
孤客截图工具 Pro
📝 总结
通过这个项目,我们完整实践了一个 Python 桌面应用的开发流程:
技术选型 - 选择适合的 GUI 框架和依赖库
功能开发 - 实现核心截图功能和人机交互
界面设计 - 创建美观易用的用户界面
问题解决 - 处理兼容性和技术难点
打包部署 - 生成可分发可执行文件
这个项目展示了 Python 在桌面应用开发方面的能力,虽然在某些方面不如专业 GUI 框架强大,但对于中小型工具类应用来说是完全足够的。
源码地址: Github-Free-screenshot-tool
作者: 孤客
技术栈: Python + Tkinter + Pillow + PyInstaller
** License**: MIT
欢迎 Star ⭐ 和 Fork,如果有任何问题或建议,欢迎在 Issues 中讨论!
