【图片操作】生成动态图片

简介: 动态图片我们使用的还是比较频繁的,平时的表情包有很多动图。今天我们要做的就是自己制作动态图片,其实就是将视频转换成动图,操作起来非常简单。下面我们就来看看如何实现吧。

一、前言

动态图片我们使用的还是比较频繁的,平时的表情包有很多动图。今天我们要做的就是自己制作动态图片,其实就是将视频转换成动图,操作起来非常简单。下面我们就来看看如何实现吧。

二、读取视频

今天我们要做的就是将视频转换成动态图片,首先我们需要读取视频。这里要使用到opencv,其实还可以用moviepy,在处理视频方便要更加专业,不过这里为了方便使用opencv模块。

1、安装

安装的话只需要执行下面的语句:

pip install opencv-python
复制代码

然后是导入:

import cv2
复制代码

下面我们就可以使用了。

2、读取视频

opencv读取视频的操作非常简单,代码如下:

import cv2
# 读取视频
capture = cv2.VideoCapture("test.mp4")
# 读取视频帧
ret, frame = capture.read()
复制代码

这里我们调用cv2.VideoCapture来读取视频,当我们传入0时它会直接调用我们的摄像头。

然后我们调用read读取视频内容,这里返回了两个参数,分别是是否有下一帧和当前帧的图片对象。

3、缩放图片

在转换成动图的时候,我们需要让图片有包浆的感觉,因此要将图片缩小。具体操作如下:

import cv2
img = cv2.imread("1.jpg")
# 修改图片尺寸
reimg = cv2.resize(img, (200, 100))
复制代码

我们通过调用resize函数修改了图片尺寸。

三、视频转换成GIF

这里就是不断读取视频,然后缩小图片写入GIF。具体代码如下:

import cv2
fps = 12
w, h = 200, 100
capture = cv2.VideoCapture("小新穿内裤.mp4")
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
writer = None
num = 0
while True:
    ret, frame = capture.read()
    if not writer:
        writer = cv2.VideoWriter('result.gif', fourcc, fps, (w, h))
    if not ret:
        break
    if num % 2 == 0:
        writer.write(cv2.resize(frame, (w, h)))
    num += 1
writer.release()
复制代码

这里我们就是将完整的视频写成了GIF,大家也可以在循环中设置条件让他提前结束,这样就可以控制GIF的时常。


作者:ZackSock

链接:https://juejin.cn/post/7017466154230743053

来源:稀土掘金

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

目录
相关文章
|
3月前
|
人工智能
图片生成很好用
图片展示了一张图表,图中通过不同的颜色和数据点展示了某项技术或产品在不同维度上的表现情况。标题“AI也很好用”表明该图表可能是在说明人工智能技术的实用性和效果。不过,由于缺少具体的数据和背景信息,无法提供更详细的解读。
图片生成很好用
|
3月前
图片的大小
【10月更文挑战第7天】
70 1
|
8月前
|
存储 算法 C#
C# 生成指定图片的缩略图
C# 生成指定图片的缩略图
|
编解码 开发工具 Android开发
.9图片的那点事儿
.9图片的那点事儿
197 0
|
前端开发
canvas实现海报 两张图片合成一张并且可以保存
canvas实现海报 两张图片合成一张并且可以保存
canvas实现海报 两张图片合成一张并且可以保存
【图片操作】给图片添加滤镜
现在我们都喜欢给图片添加滤镜,现在很多相机也自带了许多滤镜。我们可以在拍照的时候选择需要的滤镜。但是有时候我们需要给大量图片添加同样的滤镜,这个时候手动添加就非常麻烦了。为了方便,我们可以使用程序来帮我们完成添加滤镜的操作。
280 0
|
Java API Maven
一行代码搞定图片缩略图处理
不知道大家现在工作中还有没有使用过Java处理图片的。强哥在大学毕业后,从事服务端WEB开发,就很少接触图片处理。有接触图片的,大多也就是图片的上传下载。所以,对Java处理图片相关的技术也都没怎么接触。
一行代码搞定图片缩略图处理
|
缓存 Java 数据安全/隐私保护
给图片加水印?这是我见过最简单的实现方式
大家好,我是指北君。 在项目中经常有需要在图片上添加水印的需求以及在某些场合下需要身份证图片,这时就可以对身份证上加水印防止被用于其他用途,java 在处理图片水印时不需要额外的第三方包,使用 BufferedImage 和 Graphics2D 就可以搞定
给图片加水印?这是我见过最简单的实现方式
|
C# 图形学 索引
上传图片时,使用GDI+中重绘方式将CMYK图片转为RGB图片
原文:上传图片时,使用GDI+中重绘方式将CMYK图片转为RGB图片 我们知道,如果网站上传图片时,如果用户上传的是CMYK图片,那么在网站上将是无法显示的,通常的现象是出现一个红叉。
1224 0
|
缓存 Android开发
图片
●图片加载,缓存,处理 Picasso (一个强大的图片下载与缓存的库) Fresco (一个用于管理图像和他们使用的内存的库) Glide (一个图片加载和缓存的库,使用的App有:网易新闻) Picasso-transformations (...
1414 0

热门文章

最新文章

下一篇
开通oss服务