技巧 | Python 图片转换GIF/视频

简介: 技巧 | Python 图片转换GIF/视频

大家好,我是欧K。本期为大家介绍两个图片转GIF/视频的Python库--imageio/cv2希望对你有所帮助。

先看看效果:

,时长00:06


1. 图片获取

1.1 导入模块

import os
import time
import requests
import imageio
import cv2
from PIL import Image

果没有相应的包直接pip install xxx即可(推荐使用国内镜像安装)。


1.2 爬取每日气温图片


来源:中央气象台

链接:http://www.nmc.cn/

以端午节(2021-06-14)全国逐时气温为例:


代码:

# 抓取图片
def get_pics(date, path):
    year = date.split('-')[0]
    mon = date.split('-')[1]
    day = int(date.split('-')[2])
    for i in range(24):
        time.sleep(3)
        # 08:00-24:00
        if i < 17:
            url = 'http://image.nmc.cn/product/{0}/{1}/{2:0>2d}/STFC/medium/SEVP_NMC_STFC_SFER_ET0_ACHN_L88_PB_{0}{1}{2:0>2d}{3:0>2d}0000000.jpg'.format(
                year, mon, day, i)
            img = requests.get(url)
            fiename = '{}{}h.png'.format(path, i + 8)
            with open(fiename, 'ab') as f:
                f.write(img.content)
        # 01:00-07:00
        else:
            url = 'http://image.nmc.cn/product/{0}/{1}/{2:0>2d}/STFC/medium/SEVP_NMC_STFC_SFER_ET0_ACHN_L88_PB_{0}{1}{2:0>2d}{3}0000000.jpg'.format(
                year, mon, day - 1, i)
            img = requests.get(url)
            fiename = '{}{}h.png'.format(path, i - 17)
            with open(fiename, 'ab') as f:
                f.write(img.content)

效果:

2. 图片转GIF

2.1 读取本地图片

代码:

# 读取本地图片
def find_pics(date, path):
    # 读取文件夹
    imagelist = os.listdir(path)
    gifname = '{}.gif'.format(date)
    videoname = '{}.avi'.format(date)
    # 排序
    imagelist.sort(key=lambda x: int(x[:-5]))
    imagelist = [path + ff for ff in imagelist]
    #帧间隔
    duration = 0.6
    create_gif(imagelist, gifname, duration)
    create_video(imagelist, videoname)

注意文件排序。


2.2 生成.gif

代码:

# 生成gif
def create_gif(imagelist, gifname, duration = 1.0):
    frames = []
    for image_name in imagelist:
        frames.append(imageio.imread(image_name))
    # 保存gif
    imageio.mimsave(gifname, frames, 'GIF', duration=duration)

效果:


3. 图片转视频


3.1 VideoWriter()


VideoWriter()的参数有filename, fourcc, fps, frameSize, isColor

  • filename:需要生成的视频的名字
  • fourcc:用于压缩框架的解码器的4位编码
  • fps:每秒的视频帧数
  • frameSize:视频画面的尺寸(这里需要与用于合成视频的图片尺寸一致)
  • isColor:如果该位值为Ture,解码器会进行颜色框架的解码,否则会使用灰度进行颜色架构(该功能仅支持在Windows系统中使用)


3.2 生成.avi 代码:


# 生成video
def create_video(imagelist,videoname):
    image = Image.open(imagelist[0])
    fourcc = cv2.VideoWriter_fourcc(*"MJPG")
    cap_fps = 1
    video = cv2.VideoWriter(videoname, fourcc, cap_fps, image.size)
    for filename in imagelist:
        img = cv2.imread(filename)
        video.write(img)
    video.release()

效果:


image.png


也可自定义图片转换:

完。

END


以上就是本期为大家整理的全部内容了,赶快练习起来吧,喜欢的朋友可以点赞、点在看也可以分享让更多人知道

相关文章
|
5月前
|
编解码 数据安全/隐私保护 Python
抖音批量发布视频工具,自动上传视频作品笔记,python发布软件
这个抖音批量发布工具包含三个主要模块:主上传程序、配置文件和视频预处理工具。主程序
|
2月前
|
数据采集 自然语言处理 数据可视化
Python爬取B站视频评论区情感分析:从数据采集到价值挖掘
B站作为年轻人聚集地,评论蕴含丰富情感与趋势。本文详解如何用Python爬取评论,结合SnowNLP与jieba进行中文情感分析,并通过可视化挖掘用户情绪、消费意愿与内容反馈,助力精准运营与决策。
468 0
|
3月前
|
机器学习/深度学习 编解码 Python
Python图片上采样工具 - RealESRGANer
Real-ESRGAN基于深度学习实现图像超分辨率放大,有效改善传统PIL缩放的模糊问题。支持多种模型版本,推荐使用魔搭社区提供的预训练模型,适用于将小图高质量放大至大图,放大倍率越低效果越佳。
270 3
|
3月前
|
机器学习/深度学习 文字识别 Java
Python实现PDF图片OCR识别:从原理到实战的全流程解析
本文详解2025年Python实现扫描PDF文本提取的四大OCR方案(Tesseract、EasyOCR、PaddleOCR、OCRmyPDF),涵盖环境配置、图像预处理、核心识别与性能优化,结合财务票据、古籍数字化等实战场景,助力高效构建自动化文档处理系统。
746 0
|
5月前
|
数据采集 存储 监控
Python爬虫实战:批量下载亚马逊商品图片
Python爬虫实战:批量下载亚马逊商品图片
|
5月前
|
API 数据安全/隐私保护 Python
小红书批量发布协议, 抖音自动批量发布软件脚本,笔记作品视频自动发布工具【python】
这个工具框架包含了小红书和抖音的批量发布功能,支持图片和视频处理、定时发布等功能
|
5月前
|
Web App开发 数据安全/隐私保护 Python
快手批量发布作品工具,自动上传视频发布软件,python实现自动脚本
这个脚本实现了快手批量上传视频的功能,包含登录、上传视频、添加描述和发布等完整流程
|
5月前
|
数据安全/隐私保护 Python
快手自动上传视频脚本,图文视频批量发布工具,快手批量发布作品软件【python】
快手批量上传工具提供了完整的视频和图文上传功能,包含登录验证、文件上传、标题设置
|
3月前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的首选语言
Python:现代编程的首选语言
301 102
|
3月前
|
数据采集 机器学习/深度学习 算法框架/工具
Python:现代编程的瑞士军刀
Python:现代编程的瑞士军刀
322 104

推荐镜像

更多