孤客截图工具 Pro - 从开发到打包的完整指南

孤客截图工具 Pro 📸

本文详细记录了一个基于 Python 的桌面截图工具从开发到打包成可执行文件的完整过程,包含技术选型、开发难点、解决方案和打包部署。

一个简单易用、界面美观的桌面截图工具,支持区域截图、全屏截图、复制到剪贴板和保存图片等功能。

✨ 功能特色

🎯 核心功能

  • 🖼️ 区域截图 - 自由拖拽选择截图区域
  • 🖥️ 全屏截图 - 一键截取整个屏幕
  • 💾 保存截图 - 支持 PNG、JPEG 格式保存
  • 📋 复制到剪贴板 - 快速复制截图到系统剪贴板
  • 👀 实时预览 - 截图后立即预览效果

🎨 界面特色

  • 现代化设计 - 简洁美观的圆角按钮设计
  • 紧凑布局 - 小巧精致的界面,不占用桌面空间
  • 中文界面 - 完全中文化的操作界面
  • 状态提示 - 实时显示操作状态和提示信息

⚡ 便捷操作

  • 设置菜单 - 快速访问常用功能
  • 使用教程 - 内置详细的使用说明
  • 反馈系统 - 一键跳转反馈页面

🚀 快速开始

环境要求

  • Python 3.6 或更高版本
  • Windows 操作系统

安装依赖

bash 复制代码
pip install pillow pywin32

运行程序

bash 复制代码
python guke_screenshot_pro.py

📖 使用说明

基本操作

区域截图:点击"区域截图"按钮,拖拽鼠标选择区域

全屏截图:点击"全屏截图"按钮,自动截取整个屏幕

保存截图:截图后点击"保存截图"选择保存位置

复制截图:截图后点击"复制截图"粘贴到其他应用

快捷键 ESC - 取消截图操作

鼠标拖拽 - 选择截图区域

设置菜单

点击右上角的设置按钮(⚙)可以访问:

👤 关于作者 - 查看软件信息和开发者

⬇️ 下载最新版本 - 获取最新版本

📖 使用教程 - 查看详细使用说明

❓ 反馈问题 - 提交问题或建议

🗂️ 项目结构

text 复制代码
guke-screenshot-pro/
├── guke_screenshot_pro.py    # 主程序文件
├── screenshot_settings.json  # 配置文件(自动生成)
├── screenshots/              # 截图保存目录(自动生成)
└── README.md                 # 说明文档

🚀部分代码

1. 界面设计

采用卡片式布局和圆角按钮设计,提供更好的用户体验:

python 复制代码
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 模块:

python 复制代码
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 实现图片复制到剪贴板:

python 复制代码
def copy_to_clipboard(self):
    """复制到剪贴板"""
    if not self.screenshot:
        return
    
    try:
        import win32clipboard
        from io import BytesIO
        
        output = 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 中讨论!

相关推荐
Q_Q19632884752 小时前
python+django/flask的医院财务管理系统
spring boot·python·django·flask·node.js
herogus丶2 小时前
【LLM】LLaMA-Factory 训练模型入门指南
python·ai编程·llama
谏书稀2 小时前
LLaMA Factory微调大模型
python·transformer·llama
雨中散步撒哈拉2 小时前
16、做中学 | 初三上期 Golang面向对象_进阶
爬虫·python·golang
追风少年ii3 小时前
单细胞空间联合分析新贵--iStar
python·数据分析·空间·单细胞
antonytyler4 小时前
机器学习实践项目(二)- 房价预测增强篇 - 特征工程四
人工智能·python·机器学习
gCode Teacher 格码致知4 小时前
Python教学基础:用Python和openpyxl结合Word模板域写入数据-由Deepseek产生
python·word
饼干,4 小时前
第5天python内容
开发语言·python
ZhengEnCi4 小时前
P3E-Python Lambda表达式完全指南-什么是匿名函数?为什么90%程序员都在用?怎么快速掌握函数式编程利器?
后端·python