只需要两步制作GIF动态图,方便快捷,制作动态表情包的利器!

news2024/9/28 17:28:25

在这里插入图片描述推荐阅读:Python制作进度条,18种方式全网最全!(不全去你家扫厕所!)

在日常生活中肯定会接触到gif,例如在写文章的时候,有时需要将自己的代码的运行结果展示出来,如果放一张静态图可能不直观,需要展示一个动图,能够让读者更直观的看到自己的运行结果。或者在制作一些动态的表情包的时候也需要使用GIF,那么GIF图如何制作呢?

准备工具

MAC自带的录屏工具

  • 软件名称:QuickTime Player
  • 软件平台:macOS(内置于文件app)、iOS(部分功能)
  • 开发商:苹果公司
  • 软件类型:媒体播放器及多媒体架构
    在这里插入图片描述
  • 视频播放:
    QuickTime Player支持多种视频格式,包括但不限于MP4、MOV、AVI等,让用户能够轻松播放各种来源的视频文件。
    提供高清视频播放能力,确保视频内容的清晰度和流畅度。
  • 音频播放:
    除了视频文件,QuickTime Player还支持音频文件的播放,如MP3、MIDI等,满足用户多样化的播放需求。
  • 媒体编辑与创作:
    虽然QuickTime Player的基本版本主要面向播放功能,但付费版(QuickTime Pro)则提供了更为丰富的媒体编辑和创作功能,如视频剪辑、音频编辑、特效添加等。
    用户可以使用QuickTime Pro进行视频文件的转换、录制和剪辑,以及音频文件的处理和编辑。
  • 流媒体传输:
    QuickTime架构支持流媒体传输,允许用户通过互联网实时传输和播放媒体内容。
  • 多平台兼容性:
    QuickTime Player不仅限于macOS系统,还提供了对iOS系统的部分支持,以及跨平台的兼容性,使得用户可以在不同设备间无缝切换和播放媒体内容。

gifify工具

gifify是一个功能强大的开源工具,它能够将视频文件转换为优化的动态GIF图像。无论是完整的视频还是视频中的特定片段,gifify都能轻松应对,为用户提供了一种简单、高效的视频到GIF的转换方式。

  • 功能:将视频文件转换为GIF动画。
  • 类型:命令行工具
  • 项目地址:https://github.com/jclem/gifify.git

功能特点

  • 视频转GIF:
    支持将任何视频文件(如MP4、MOV等)转换为GIF格式,方便在社交媒体、博客、即时通讯平台等地方分享。
    可以选择转换视频的整个长度或仅其中的一部分,满足用户的不同需求。
  • 优化处理:
    利用FFmpeg进行视频处理,ImageMagick进行图像转换,并通过giflossy等工具实现GIF文件的优化压缩,大大减小了GIF图片的体积,同时保持较高的图像质量。
  • 丰富的参数配置:
    支持多种参数配置,如帧率、裁剪、速度调整、颜色数量、压缩级别等,以生成高质量的GIF动画。
    用户可以根据实际需求调整这些参数,以满足不同的使用场景。
  • 流式处理与内存优化:
    支持从标准输入读取视频文件,方便管道操作。
    无需创建临时文件,所有操作都在内存中完成,保证了速度的同时节省了硬盘空间。
  • 文本和字幕烧录:
    可以在GIF上添加文字,并支持导入字幕文件进行烧录,提升表达效果。
  • 跨平台与兼容性:
    尽管gifify可能最初是为MacOS设计的,但其基于Shell脚本或Node.js的本质使其在其他Unix-like系统中也有潜力运行。
    生成的GIF文件在各种环境中都能保持较好的播放兼容性。

gifify安装和使用

使用以下命令安装gifify

brew install gifify

使用gifify
假设你有一个名为recording.mov的屏幕录制文件:

1.转换成GIF文件:

gifify recording.mov

2.输出到新文件new_gif.gif:

gifify -o new_gif recording.mov

3.裁剪左上角后转换:

gifify -c 100:100 recording.mov

4.设置每秒60帧转换:

gifify -r 60 recording.mov

5.以30帧每秒的速度转换,并加速两倍播放:

gifify -r 30@2 recording.mov

6.同样加速两倍,但只循环一次:

gifify -r 30@2 -l 1 recording.mov

关于帧率

GIF播放器通常限制帧率为每秒60到100帧之间。在调整GIF的帧率或播放速度时,请确保帧率不超过60fps,以保证GIF播放的一致性。一个简单的计算原则是FPS乘以播放速度不应超过60。

演示

按照我之前写Python制作进度条时的步骤
首先把进度条的执行过程录制下来,然后使用gifify进行转换

录制

这是我运行时候的控制台,我需要把控制台上进度条执行的过程录制下来
在这里插入图片描述

打开QuickTime Player

右击图标,选择新建屏幕录制
在这里插入图片描述

选定要录制的区域

选中要录制的区域之后,点击录制,录制完成之后就可以停止录制了

gif转换

打开终端,进入到刚才录制的视频的保存目录
在这里插入图片描述

  • gifify:这个是执行命令
  • 1.mov:我录制的视频文件名称
  • 1.gif:转换成gif之后的文件名

展示一下结果:

在这里插入图片描述# 推荐阅读

Python基础

Python全网最全基础课程笔记(一)——基础入门
Python全网最全基础课程笔记(二)——变量
Python全网最全基础课程笔记(三)——所有运算符+运算符优先级
Python全网最全基础课程笔记(四)——基本数据类型
Python全网最全基础课程笔记(五)——选择结构+Python新特性Match
Python全网最全基础课程笔记(六)——循环结构
Python全网最全基础课程笔记(七)——列表,跟着思维导图和图文来学习,爆肝2w字,无数代码案例!
Python全网最全基础课程笔记(八)——字典,跟着思维导图和图文来学习,爆肝2w字,无数代码案例!
Python全网最全基础课程笔记(九)——集合,跟着思维导图和图文来学习,爆肝2w字,无数代码案例!
Python全网最全基础课程笔记(十)——元组,跟着思维导图和图文来学习,爆肝2w字,无数代码案例!
Python全网最全基础课程笔记(十一)——字符串所有操作,跟着思维导图和图文来学习,爆肝2w字,无数代码案例!
Python全网最全基础课程笔记(十二)——函数,跟着思维导图和图文来学习,爆肝2w字,无数代码案例!
Python全网最全基础课程笔记(十三)——作用域,跟着思维导图和图文来学习,爆肝2w字,无数代码案例!

Flink入门到就业

2024年最新Flink教程,从基础到就业,大家一起学习–基础篇
2024年最新Flink教程,从基础到就业,大家一起学习–入门篇
2024年最新Flink教程,从基础到就业,大家一起学习–Flink集群部署
2024年最新Flink教程,从基础到就业,大家一起学习–flink部署和集群部署(从本地测试到公司生产环境如何部署项目源码)
2024年最新Flink教程,从基础到就业,大家一起学习–Flink运行架构底层源码详解+实战
2024年最新Flink教程,从基础到就业,大家一起学习–Flink DataStream API-第一篇+源码讲解

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2174229.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

面试遇到的质量体系10个问题(深度思考)

在某大型公司的招聘面试中关于质量体系本身及建设实践方面的10个问题,这些问题都是偏理论性强一些,但是可以通过这些问题来了解大型公司对质量体系的一些想法和预期的内容,本期先抛出来这10个问题,不附答案,目的就是让…

浏览器用户行为集群建设-数仓建模-数据计算

项目介绍 该项目旨在将集群构建--数仓建模--数据计算通路进行模拟,以达到熟悉整个数据流程的效果。 该项目模拟浏览器后台数据集群身份,收集用户浏览器访问数据传入数据集群,并进行数仓建模,以此基础进行相关计算和看数。 该项…

浅谈域攻防渗透之道-凭据获取

静时修止动修观,历历情人挂眼前;若把此心以学道,即身成佛有何难? 前言 通过提权得到了⼀个⾼权限的⽤户身份,例如获取到了 SYSYEM 权限后,就可以抓当前机器上各类密码:机器密码、浏览器密码、…

asynDriver-2

操作理论 初始化 在初始化中,端口驱动注册每个通信端口以及所有支持的接口。 用户代码创建一个asynUser, 它是访问asynDriver功能的"句柄",通过调用: pasynManager->createAsynUser(processCallback,timeoutCallback); 一个…

基于单片机语音智能导盲仪仿真设计

文章目录 前言资料获取设计介绍设计程序具体实现截图设计获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们…

VulnHub-SickOs1.1靶机笔记

SickOs1.1靶机笔记 概述 Vulnhub的靶机sickos1.1 主要练习从互联网上搜取信息的能力,还考察了对代理使用,目录爆破的能力,很不错的靶机 靶机地址: 链接: https://pan.baidu.com/s/1JOTvKbfT-IpcgypcxaCEyQ?pwdytad 提取码: yt…

AFSim仿真系统 --- 系统简解_02(向导模块)

向导 向导是AFSIM的集成开发环境。它提供了视觉和基于文本的工具,以简化场景的开发和执行。 向导支持嵌入式执行基于文本的WSF应用程序,例如任务和传感器图,并提供快捷方式以方便启动其他WSF视觉应用程序,如Warlock和Mystic。 核…

图解IRF

FW1 配置思路 ① 配置IRF优先级 确认设备的主次 ② 设置批量操作的接口方便后续操作 interface range name fw-irf interface GigabitEthernet1/0/2 to GigabitEthernet1/0/3 ③ 接口 showdown 关闭接口 ④ 创建的IRF 1/1 成员的对应的接口的是 GE1/0/2 GE/1/0/3 ⑤ 开放IRF对…

Mathematica线性优化-单纯形/改善单纯形/内点法

引言 Mathematica提供了多种工具和函数来实现线性优化,这些工具可以处理从简单的线性规划问题到复杂的多变量优化问题,最近运筹学作业要熟悉线性优化的编程方法,我们就使用mathematica进行:所有运行代码都在文章上面的资源中&…

Python | Leetcode Python题解之第435题无重叠区间

题目: 题解: class Solution:def eraseOverlapIntervals(self, intervals: List[List[int]]) -> int:if not intervals:return 0intervals.sort(keylambda x: x[1])n len(intervals)right intervals[0][1]ans 1for i in range(1, n):if intervals…

c++速成 01 数据类型与基本运算符

文章目录 前言整型整型短整型长整型无符号整型 浮点型单精度双精度长双精度 变量命名规则:局部变量 全局变量基本运算符算术运算符:赋值运算符比较运算符逻辑运算符位运算符杂项运算符运算符间的优先级 前言 写在前面:本笔记参考b站视频【《…

从零开始手写STL库:Stack

从零开始手写STL库–Stack的实现 Gihub链接:miniSTL 文章目录 从零开始手写STL库–Stack的实现一、stack是什么?二、stack要包含什么函数总结 一、stack是什么? 栈是一种后进先出(LIFO,Last In First Out&#xff09…

前端常用动画 直接可以用的代码加详细流程和案例 能应付90%的开发场景

前端项目,特别是Toc的项目,一定少不了各种动效和动画效果。 葫芦七兄弟: CSS 动画 优点:兼容性强;浏览器针对的流畅度优化;语法简单;某些属性(如 transform 和 opacity)…

CSS 的背景样式

1.1 背景颜色 1.2 背景图片 1.3 背景平铺 1.4 背景图片位置 1.4.1 方位名词 1.4.2 精确单位 1.4.3 混合单位 1.5 背景图像固定 1.6 背景复合写法 1.7 背景色半透明 1.8 总结

Json-Rpc框架(Muduo库快速上手)

阅读导航 引言一、Muduo库简介二、Muduo库常见接口1. TcpServer类基础介绍2. EventLoop类基础介绍3. TcpConnection类基础介绍4. TcpClient类基础介绍5. Buffer类基础介绍 三、Muduo库使用示例⭕英译汉服务器⭕英译汉客户端 引言 在上一篇文章中,我们简要介绍了在项…

业务资源管理模式语言19

相关模式: 如果你考虑类“Resource Maintenance”和“Part used in maintenance”,那么是“Transaction-Transaction Line Item”模式的一个特例[Coa 97]。如果你考虑类“Part”和“Part used in maintenance”,那么是“Item Line Item”模式…

力扣 简单 104.二叉树的最大深度

文章目录 题目介绍解法 题目介绍 解法 如果知道了左子树和右子树的最大深度 l 和 r,那么该二叉树的最大深度即为max(l,r)1,而左子树和右子树的最大深度又可以以同样的方式进行计算。因此我们可以用递归的方法来计算二叉树的最大深度。具体而言&#xff…

动态规划(有背包问题)

目录 1.动态规划的介绍 2.动态规划的例题 第1道题 数字三角形 (如果想看递归写法可以到我的记忆化递归里去看看记忆化递归_将递归程序记忆化-CSDN博客) 第2道题最长公共子序列(模板) 第3道题 最长上升子序列 第4道题最大子段和 背包系列问题 01背包 完全背包 1.动态规…

scrapy爬虫基础

一、初识 创建项目: scrapy startproject my_one_project # 创建项目命令 cd my_one_project # 先进去, 后面在里面运行 运行爬虫命令为:scrapy crawl tk spiders下创建test.py 其中name就是scrapy crawl tk &…

LeetCode讲解篇之5. 最长回文子串

文章目录 题目描述题解思路题解代码 题目描述 题目链接 题解思路 从中心点先寻找和中心点相等的左右端点,在基于左右端点进行往外扩散,直至左右端点不相等或者越界,然后左右端点这个范围内就是我们找寻的回文串,我们遍历中心点…