《Python实例》用Pillow录制屏幕,制作gif ,太简单了

简介: gif 的文章上次实现了图片的合成,看下我们上次的需求分解

gif 的文章上次实现了图片的合成,看下我们上次的需求分解


1、需求分析 我的需求就是能录制gif 图片,因为第一次做这种东西,所以需要分解需求。


步骤一:我需要能录屏,也就是截屏功能,将当前屏幕保存,技术方案暂时没定,这次实现


步骤二:我需要能把截屏的图片进行合并,合成gif图片,已经找到合适的库,立即做。已实现


步骤三:将python文件进行界面友好化,非核心功能,延期。


步骤二已经实现,步骤一我们这次实现


2、技术分析 依然使用Pillow实现我呢的录屏功能,Python使用的3.8 ,Pillow的具体安装上次的文章中有详细的情况。

简单的说就是pip install pillow


上篇链接:《Python实例》自己用Python写个gif生成工具,Pillow 真TM简单!


3、需求详细分解 1.实现录屏功能


2.可以调节录屏的帧率,防止生成的gif 文件过大


3.可以选择录屏的部分区域生成


4.可以在开始的时候选择延时处理


4、测试接口 我在测试录屏功能的代码:


def takeSnapTest():
   m = int(input("请输入想抓屏多少秒:"))
   n = 1
   m = frame * m
   while n < m:
       sleep(sleepTime)
       im = ImageGrab.grab()
       local = (r"%s.jpg" % (n))
       im.save(local, 'jpeg')
       n = n + 1
复制代码


上面的代码会将屏幕生成图片保存到当前代码所在的文件夹下


d566906794014207b7fd2734c0a923c3~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg

从结果可以看到上面的代码能够捕获屏幕,并且生成图片,可以衔接我之前所做的工作,用图片合成gif


5、show you code 需求也分析,接口也验证了,直接撸代码。


#!/usr/bin/env python
# encoding: utf-8
"""
#Author: 香菜
@time: 2021/8/9 0009 下午 8:55
"""
from time import sleep
from PIL import ImageGrab
frame = 10
sleepTime = 1.0 / frame
def makeGif(imgList):
   im = imgList[0]
   im.save('beauty.gif', save_all=True, append_images=imgList[1:], loop=0, duration=sleepTime)
def takeSnap():
   m = int(input("请输入想抓屏多少秒:"))
   x = int(input("多少秒后开始,0 立即开始:"))
   if x != 0:
       sleep(x)
   n = 1
   m = frame * m
   imgList = []
   while n < m:
       sleep(sleepTime)
       im = ImageGrab.grab()
       w, h = im.size
       cropim = im.crop((0, 0, w / 2, h / 2))
       # local = (r"%s.jpg" % (n))
       imgList.append(cropim)
       # cropim.save(local, 'jpeg')
       n = n + 1
   return imgList
if __name__ == '__main__':
   imgList = takeSnap()
   makeGif(imgList)
复制代码


测试一下,运行一下看看结果

b3f78b5d5eea41e3a05737e26f604cb0~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg

基本上完成了我的需求。


6、总结: 1、可以优化坐标的选取,我现在设置的直接取左上角,可以在设计界面的时候由用户选取


2、可以优化速度,现在的速度没有经过精确计算,似乎有点快,懒得出来了,交给你了。


3、下面要做的是搞个界面,有点难,我也不擅长,可能会放弃,你加油


4、写代码的过程中遇到的问题,图片的截取,差点没找到接口要用其他的库去截取

源码地址:download.csdn.net/download/pe…

目录
相关文章
|
9月前
|
算法 Python
Apriori算法的Python实例演示
经过运行,你会看到一些集合出现,每个集合的支持度也会给出。这些集合就是你想要的,经常一起被购买的商品组合。不要忘记,`min_support`参数将决定频繁项集的数量和大小,你可以根据自己的需要进行更改。
366 18
|
前端开发 搜索推荐 编译器
【01】python开发之实例开发讲解-如何获取影视网站中经过保护后的视频-用python如何下载无法下载的视频资源含m3u8-python插件之dlp-举例几种-详解优雅草央千澈
【01】python开发之实例开发讲解-如何获取影视网站中经过保护后的视频-用python如何下载无法下载的视频资源含m3u8-python插件之dlp-举例几种-详解优雅草央千澈
783 34
【01】python开发之实例开发讲解-如何获取影视网站中经过保护后的视频-用python如何下载无法下载的视频资源含m3u8-python插件之dlp-举例几种-详解优雅草央千澈
|
11月前
|
人工智能 编解码 算法
如何在Python下实现摄像头|屏幕|AI视觉算法数据的RTMP直播推送
本文详细讲解了在Python环境下使用大牛直播SDK实现RTMP推流的过程。从技术背景到代码实现,涵盖Python生态优势、AI视觉算法应用、RTMP稳定性及跨平台支持等内容。通过丰富功能如音频编码、视频编码、实时预览等,结合实际代码示例,为开发者提供完整指南。同时探讨C接口转换Python时的注意事项,包括数据类型映射、内存管理、回调函数等关键点。最终总结Python在RTMP推流与AI视觉算法结合中的重要性与前景,为行业应用带来便利与革新。
643 5
|
人工智能 编译器 Python
python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈
python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈
300 0
python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈
|
数据挖掘 vr&ar C++
让UE自动运行Python脚本:实现与实例解析
本文介绍如何配置Unreal Engine(UE)以自动运行Python脚本,提高开发效率。通过安装Python、配置UE环境及使用第三方插件,实现Python与UE的集成。结合蓝图和C++示例,展示自动化任务处理、关卡生成及数据分析等应用场景。
1422 5
Python 练习实例100
Python 练习实例100
Python 练习实例98
Python 练习实例98
|
Python
Python中的push方法详解与实例
Python中的push方法详解与实例
280 3
Python 练习实例99
Python 练习实例99
Python 练习实例94
Python 练习实例94

推荐镜像

更多