it编程 > 前端脚本 > Python

基于Python实现简易屏幕画笔工具

8人参与 2025-07-25 Python

你是否曾在观看网课或参加远程会议时,想要直接在屏幕上标注重点?或者作为设计师,需要快速绘制创意草图?现在,只需几行python代码,你就能轻松打造专属的屏幕画笔工具,无需安装任何专业软件!

为什么选择python创建屏幕画笔

python作为最受欢迎的编程语言之一,拥有以下优势:

你需要准备什么

基础环境

必要python库

pip install pyautogui pillow keyboard

核心功能实现思路

下面让我们一步步实现这个有趣的工具!

核心原理图解

屏幕画笔工具的核心是捕捉鼠标轨迹并将轨迹转化为可视图形。整个过程基于三个关键组件:

坐标记录器:存储鼠标移动的坐标点序列

图形渲染器:将坐标点连接成连续线条

事件监听器:实时监控鼠标动作(移动/点击)

用数学公式表示绘图过程:

代码实现详解

我们使用python的pygame库实现绘图功能,以下是分步解析:

1. 环境初始化

import pygame
import sys

# 初始化引擎
pygame.init()
screen = pygame.display.set_mode((0, 0), pygame.fullscreen)
canvas = pygame.surface(screen.get_size(), pygame.srcalpha)

2. 核心绘图逻辑

drawing = false  # 画笔状态
points = []      # 坐标存储
color = (255, 0, 0)  # 红色画笔
radius = 5       # 画笔粗细

while true:
    for event in pygame.event.get():
        if event.type == pygame.quit:
            pygame.quit()
            sys.exit()
        
        # 鼠标按下时开始记录轨迹
        if event.type == pygame.mousebuttondown:
            drawing = true
            points = [event.pos]
        
        # 鼠标移动时持续记录坐标
        elif event.type == pygame.mousemotion and drawing:
            points.append(event.pos)
            
        # 鼠标释放时完成线段
        elif event.type == pygame.mousebuttonup:
            drawing = false
            points = []
    
    # 实时渲染轨迹
    if len(points) > 1:
        pygame.draw.lines(canvas, color, false, points, radius)
    
    # 显示到屏幕
    screen.fill((0, 0, 0))
    screen.blit(canvas, (0, 0))
    pygame.display.flip()

3. 增强功能实现

添加更多实用功能让工具更完善:

# 颜色切换(按1-3键)
if event.type == pygame.keydown:
    if event.key == pygame.k_1: color = (255,0,0)  # 红
    if event.key == pygame.k_2: color = (0,255,0)  # 绿
    if event.key == pygame.k_3: color = (0,0,255)  # 蓝

# 清屏功能(按c键)
if event.key == pygame.k_c: 
    canvas.fill((0,0,0,0))

# 画笔粗细调节(上下键)
if event.key == pygame.k_up: radius += 1
if event.key == pygame.k_down: radius = max(1, radius-1)

操作指南

绘图程序使用说明

程序启动与界面

程序启动后会自动进入全屏模式,提供最大化的绘图区域

画布默认背景为白色,起始画笔颜色为黑色,画笔粗细为中等(3px)

绘图方法:按住鼠标左键不放,在画布上拖动即可绘制线条

实时预览:绘制过程中会实时显示当前笔迹,松开鼠标即完成绘制

通过键盘数字键快速切换画笔颜色:

颜色切换时会有短暂的颜色提示显示在画布右上角

使用方向键调整画笔粗细:

当前画笔粗细会实时显示在画布左上角

清空画布:按 c 键可一键清空整个画布内容

点击窗口右上角的关闭按钮(×)即可退出程序

退出前若画布有内容,会提示是否保存作品(可选保存为png格式)

教学演示:教师可以在课堂上实时绘制示意图

创意涂鸦:儿童或艺术爱好者可以进行自由创作

会议记录:快速绘制简单的思维导图或流程图

设计草图:设计师可以快速记录灵感构思

完整源代码

import pygame
import sys

def main():
    pygame.init()
    screen = pygame.display.set_mode((0, 0), pygame.fullscreen)
    canvas = pygame.surface(screen.get_size(), pygame.srcalpha)
    
    drawing = false
    points = []
    color = (255, 0, 0)
    radius = 5
    
    while true:
        for event in pygame.event.get():
            if event.type == pygame.quit:
                pygame.quit()
                sys.exit()
            
            if event.type == pygame.keydown:
                if event.key == pygame.k_escape:
                    pygame.quit()
                    sys.exit()
                if event.key == pygame.k_1: color = (255,0,0)
                if event.key == pygame.k_2: color = (0,255,0)
                if event.key == pygame.k_3: color = (0,0,255)
                if event.key == pygame.k_c: 
                    canvas.fill((0,0,0,0))
                if event.key == pygame.k_up: radius += 1
                if event.key == pygame.k_down: radius = max(1, radius-1)
            
            if event.type == pygame.mousebuttondown:
                drawing = true
                points = [event.pos]
            elif event.type == pygame.mousemotion and drawing:
                points.append(event.pos)
            elif event.type == pygame.mousebuttonup:
                drawing = false
                points = []
        
        if len(points) > 1:
            pygame.draw.lines(canvas, color, false, points, radius)
        
        screen.fill((0, 0, 0))
        screen.blit(canvas, (0, 0))
        pygame.display.flip()
        pygame.time.delay(10)

if __name__ == "__main__":
    main()

扩展思路

现在你已经拥有了一个功能完整的屏幕画笔工具!这个工具具备多种实用功能:可以自由调整画笔颜色和粗细,支持橡皮擦功能,还能一键清空画布重新开始。更棒的是,所有绘制内容都会实时保存,完全不用担心丢失作品。

尝试运行代码,在屏幕上绘制你的第一个数字作品吧。你可以:

编程的乐趣就在于:用简单的代码创造可视化的魔法。通过短短几十行python代码,我们就实现了一个功能强大的绘图工具。这就像现代版的魔法杖 - 只不过我们用代码代替了咒语,用逻辑代替了魔法手势。无论是绘制简单的几何图形,还是创作复杂的数字绘画,这个工具都能满足你的创意需求。

特别适合用于:

现在,释放你的想象力,开始创作属于你的数字艺术品吧!记得保存你的杰作,也可以分享给朋友看看你的编程成果哦。

以上就是基于python实现简易屏幕画笔工具的详细内容,更多关于python屏幕画笔的资料请关注代码网其它相关文章!

(0)

您想发表意见!!点此发布评论

推荐阅读

Python批量给excel文件加密的操作教程

07-25

Python使用Matplotlib绘制专业柱状图的完整指南

07-25

使用Python实现在PDF中查找和高亮文字的方法

07-25

Python实现修改PDF文件内部属性值

07-25

基于Python实现本地文件内容搜索工具

07-25

Python利用ElementTree库处理XML的完全指南

07-25

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论