iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python基于tkinter实现gif录屏功能
  • 509
分享到

python基于tkinter实现gif录屏功能

pythontkinterpythongif录屏python录屏 2022-06-02 22:06:30 509人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录一、主界面实现(一)实现最简单的窗体(二)把灰色设置成透明色(三)放置一个矩形框在canvas上(四)让透明窗体不断重画的onsize函数(五)绑定onsize函数(六)透明窗体的效果二、GIF录屏功能实现(一)

目录
  • 一、主界面实现
    • (一)实现最简单的窗体
    • (二)把灰色设置成透明色
    • (三)放置一个矩形框在canvas
    • (四)让透明窗体不断重画的onsize函数
    • (五)绑定onsize函数
    • (六)透明窗体的效果
  • 二、GIF录屏功能实现
    • (一)按次保存成图片
    • (二)启用一个线程
    • (三)实现具体的makegif函数
    • (四)实现create_gif,将文件夹里面的图片打包成GIF文件
    • (五)增加录屏按钮,并绑定响应事件GifScreen
    • (六)实现按钮的响应事件GifScreen
  • 三、整体实现效果
    • (一)界面效果
    • (二)GIF录屏效果

一、主界面实现

(一)实现最简单的窗体


from tkinter import *

if __name__ == '__main__':

    tk = Tk()
    tk.geometry('500x400+500+150')
    tk.title('有趣的透明窗体-开篇了!!!')
    canvas = Canvas(tk)
    canvas.pack(fill=BOTH, expand=Y)
    tk.mainloop()

太简单了,不详细说了,相信大家都看得懂。

(二)把灰色设置成透明色


TRANSCOLOUR = 'gray'
tk.wm_attributes('-transparentcolor', TRANSCOLOUR)

(三)放置一个矩形框在canvas上


canvas.create_rectangle(0, 0, canvas.winfo_width(), canvas.winfo_height(), fill=TRANSCOLOUR, outline=TRANSCOLOUR)

(四)让透明窗体不断重画的onsize函数


def on_resize(evt):
    tk.configure(width=evt.width,height=evt.height)
    canvas.create_rectangle(0, 0, canvas.winfo_width(), canvas.winfo_height(), fill=TRANSCOLOUR, outline=TRANSCOLOUR)
    print(canvas.winfo_width())

(五)绑定onsize函数


tk.bind('<Configure>', on_resize)

(六)透明窗体的效果

哈哈,透明主界面效果出来了。

二、GIF录屏功能实现

(一)按次保存成图片


def _GifScreen():
    global i
    i += 1
    HWND = win32gui.FindWindow(None,'有趣的透明窗体-开篇了!!!')
    print(HWND)
    rect=win32gui.GetWindowRect(HWND) #获取当前窗口坐标
    rect = (rect[0]+10,rect[1]+32,rect[0]+10+ canvas.winfo_width(),rect[1]+10+canvas.winfo_height()+16)
    print(rect)
    im=ImageGrab.grab(rect) #截取目标图像
    im.save("./out/CaptureScreen_%s.jpeg" % i,'jpeg') #前面一个参数是保存路径,后面一个参数是保存格式

(二)启用一个线程

启用一个线程,调用makegif函数,实现gif图片的截取


def GifScreen():
    thread_list = []
    t1 = threading.Thread(target=makegif)
    thread_list.append(t1)

(三)实现具体的makegif函数

当生成的图片达到20张的时候,就开始调用create_gif函数打包成gif文件。


def makegif():
    global i,image_list
    while True:
        _GifScreen()
        time.sleep(0.5)
        if i > 20:
            break;
    create_gif(image_list,'out.gif',0.5)

(四)实现create_gif,将文件夹里面的图片打包成GIF文件


image_list = []
def create_gif(image_list, gif_name, duration = 1.0):
    frames = []
    for image_name in image_list:
        frames.append(imageio.imread(image_name))
    imageio.mimsave(gif_name, frames, 'GIF', duration=duration)

(五)增加录屏按钮,并绑定响应事件GifScreen


b = Button(tk, text='GIF截图', command=GifScreen)
b.pack()

(六)实现按钮的响应事件GifScreen


def GifScreen():
    thread_list = []
    t1 = threading.Thread(target=makegif)
    thread_list.append(t1)

    #正式开启现线程
    for t in thread_list:
        t.setDaemon(True)
        t.start()

三、整体实现效果

(一)界面效果

(二)GIF录屏效果

代码量不大,效果还行。
再深入研究可以有更多更有趣的应用。

以上就是python基于tkinter实现gif录屏功能的详细内容,更多关于Python gif录屏的资料请关注编程网其它相关文章!

--结束END--

本文标题: python基于tkinter实现gif录屏功能

本文链接: https://www.lsjlt.com/news/10696.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python如何实现录屏功能
    这篇“Python如何实现录屏功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python如何实现录屏功能”文章吧。一、界...
    99+
    2023-07-05
  • Python+Tkinter如何实现注册登录功能
    这篇文章给大家分享的是有关Python+Tkinter如何实现注册登录功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体内容如下项目结构:源代码:# -*- coding: ut...
    99+
    2023-06-29
  • Python+Tkinter简单实现注册登录功能
    本文实例为大家分享了Python+Tkinter简单实现注册登录功能的具体代码,供大家参考,具体内容如下 项目结构: 源代码: # -*- coding: utf-8 -*...
    99+
    2024-04-02
  • python基于tkinter图形化编程实现简易计算器功能
    基于tkinter图形化编程的简易计算器,供大家参考,具体内容如下 代码如下: import re import tkinter import tkinter.messagebox ...
    99+
    2024-04-02
  • 基于Python实现录音功能的示例代码
    目录安装查找可用的麦克风录制音频将音频保存到文件今天我们来介绍一个好玩且实用的东西,我们使用python来实现一个录音的功能,废话不多说,让我们直接开始。 安装 使用 PIP 安装 ...
    99+
    2023-02-07
    Python实现录音功能 Python录音功能 Python录音
  • 基于Spring5实现登录注册功能
    本文实例为大家分享了Spring5实现登录注册功能的具体代码,供大家参考,具体内容如下 准备: 根据分析用户注册登录都需要的信息为①username(String)②userid(I...
    99+
    2024-04-02
  • Python tkinter实现计算器功能
    本文实例为大家分享了Python tkinter实现计算器功能的具体代码,供大家参考,具体内容如下 python版本:3.5 一.计算器的功能描述 今天我们用python来实现一个计...
    99+
    2024-04-02
  • recorder.js如何实现基于Html5录音功能
    这篇文章将为大家详细讲解有关recorder.js如何实现基于Html5录音功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。recorder.jsmicrophone基于HTML5的录音功能,输出格式为...
    99+
    2023-06-09
  • QT+OpenCV实现录屏功能
    本文使用QT+opencv来实现对指定窗体画面录制,并保存为avi文件。 (1)获取窗体界面 QScreen类有一个grabWindow函数,可以用来获取窗体的画面,这个函数使用很简...
    99+
    2024-04-02
  • 基于Python实现傻瓜式GIF制作工具
    目录导语​​一、简单的GIF制作1)准备中2)小简介3)代码演示二、升级imageio的GIF制作1)准备中2)小简介3)代码演示三、总效果展示导语​ ​嘿!大家好,我是木木子!今...
    99+
    2024-04-02
  • Python实现录屏功能的示例代码
    目录一、界面开发二、录屏参数设置1.设置录屏范围2.鼠标事件监听3.键盘事件监听三、录屏操作一、界面开发 #设置主界面 def set_init_window(self): ...
    99+
    2023-03-24
    Python实现录屏功能 Python录屏功能 Python录屏
  • python基于Tkinter实现人员管理系统
    前言 Tkinter是python内置的标准GUI库,基于Tkinter实现了简易人员管理系统,所用数据库为Mongodb 代码 时间宝贵!直接上代码! from tkinter...
    99+
    2024-04-02
  • Android基于Sqlite实现注册和登录功能
    Android中基于Sqlite实现注册和登录功能,供大家参考,具体内容如下 前言 写这篇博客主要是为了巩固一下学的Sqlite知识以及梳理一下这个项目的逻辑 实现逻辑 项目的图片...
    99+
    2024-04-02
  • 基于Vue3和elementplus如何实现登录功能
    这篇文章主要介绍了基于Vue3和elementplus如何实现登录功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇基于Vue3和elementplus如何实现登录功能文章都会有所收获,下面我们一起来看看吧。登...
    99+
    2023-07-05
  • 如何基于Session实现短信登录功能
    目录一、基于Session实现登录1.1 业务流程图二、发送短信验证码2.1 发送短信请求方式及参数说明三、登录功能  3.1  短信验证的请求方式及路径3.2  业务层代码实现用户登录3....
    99+
    2024-04-02
  • OpenCV实现简单录屏功能
    本文实例为大家分享了OpenCV实现简单录屏功能的具体代码,供大家参考,具体内容如下 OpenCV中VideoCapture和VideoWriter用于读写视频文件,这里的录屏功能用...
    99+
    2024-04-02
  • 基于Java怎么实现QQ登录注册功能
    这篇文章主要介绍“基于Java怎么实现QQ登录注册功能”,在日常操作中,相信很多人在基于Java怎么实现QQ登录注册功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”基于Java怎么实现QQ登录注册功能”的疑...
    99+
    2023-06-30
  • 基于struts2和hibernate实现登录和注册功能
    本文实例为大家分享了struts2和hibernate实现登录和注册功能,供大家参考,具体内容如下该项目使用MySQL数据库,数据库名为test,表名info,如图所示: 2、配置web.xml(Struts2使用) &...
    99+
    2023-05-30
    struts2 hibernate 登录
  • Java基于IO流实现登录和注册功能
    案例分析: 我们之前做过的登录注册案例是把用户信息存进集合里,要用IO流实现的话,就是要把用户信息存入文件中。登录注册两个功能的具体实现是在用户操作类中,所以我们只需要在用户操作类中...
    99+
    2024-04-02
  • 基于Python+Tkinter实现一个简易计算器
    目录设计原理示例效果主要代码设计原理 从结构上来说,一个简单的图形界面,需要由界面组件、组件的事件监听器(响应各类事件的逻辑)和具体的事件处理逻辑组成。界面实现的主要工作是创建各个界...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作