IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 《Python实例》用Pillow录制屏幕,制作gif ,太简单了 -> 正文阅读

[Python知识库]《Python实例》用Pillow录制屏幕,制作gif ,太简单了

目录

????????1、需求分析

2、技术分析

3、需求详细分解

4、测试接口

5、show you code

6、总结:


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

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

图片

从结果可以看到上面的代码能够捕获屏幕,并且生成图片,可以衔接我之前所做的工作,用图片合成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)

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

图片

基本上完成了我的需求。

6、总结:

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

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

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

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

源码地址:https://download.csdn.net/download/perfect2011/21012239

原创不易,求点赞支持

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-08-14 13:59:04  更:2021-08-14 13:59:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 17:03:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码