Python做图像处理及视频音频文件分离和合成功能
作者:陆壹爵爷 发布时间:2022-07-31 14:58:05
一、简介
Imageio是一个Python库,提供了一个简单的界面来读取和写入各种图像数据,包括动画图像,视频,体积数据和科学格式。它是跨平台的,运行在Python 2.7和3.4+上,易于安装。
作为用户,您只需要记住一些功能:
imread()和imwrite() - 用于单个图像
mimread()和mimwrite() - 用于图像系列(动画)
volread()和volwrite() - 用于体积图像数据
get_reader()和get_writer() - 用于更多控制(例如流式传输)
有关更多信息,请参阅文档。
通过一系列功能简单的界面。
使用conda或pip 易于安装。
几乎没有依赖(只有Numpy和Pillow)。
纯Python,运行在Python 2.7,3.4 +和Pypy上
跨平台,在Windows,Linux,OS X上运行(Raspberry Pi计划)
许多支持的格式。
可以读取文件名,文件对象,zip文件,http / ftp和原始字节。
使用插件轻松扩展。
通过许多测试和持续集成来维护代码质量。
Imageio有一个相对简单的核心,为不同的文件格式提供通用接口。这个核心负责从不同的源(如http)读取,并为插件公开一个简单的API来访问原始数据。所有文件格式都在插件中实现。可以轻松注册其他插件。
一些插件依赖于外部库(例如ffmpeg)。Imageio提供了一种通过一个函数调用下载这些函数的方法,并在需要时提示用户这样做。下载缓存在您的appdata目录中,这可以保持imageio轻松和可扩展。
Imageio提供各种图像格式,包括科学格式。任何有关实现更多格式的帮助都非常受欢迎!
代码库遵循PEP8样式指南的(子集)。我们力求最大的测试覆盖率(核心为100%,每个插件为> 95%)。
二、代码总结:
import subprocess
import imageio
import os
from PIL import Image
def video2mp3(file_name):
"""
将视频转为音频
:param file_name: 传入视频文件的路径
:return:
"""
outfile_name = file_name.split('.')[0] + '.mp3'
subprocess.call('ffmpeg -i ' + file_name
+ ' -f mp3 ' + outfile_name, shell=True)
def video_add_mp3(file_name, mp3_file):
"""
视频添加音频
:param file_name: 传入视频文件的路径
:param mp3_file: 传入音频文件的路径
:return:
"""
outfile_name = file_name.split('.')[0] + '-txt.mp4'
subprocess.call('ffmpeg -i ' + file_name
+ ' -i ' + mp3_file + ' -strict -2 -f mp4 '
+ outfile_name, shell=True)
def compose_gif(file_path):
"""
将静态图片转为gif动图
:param file_path: 传入图片的目录的路径
:return:
"""
img_paths = sorted([int(p[3:-4]) for p in os.listdir(file_path) if os.path.splitext(p)[1] == ".png"])
img_paths = img_paths[:int(len(img_paths) / 3.6)]
gif_images = []
for path in img_paths:
gif_images.append(imageio.imread('{0}/out{1}.png'.format(file_path, path)))
imageio.mimsave("test.gif", gif_images, fps=30)
def compress_png(file_path):
"""
将gif动图转为每张静态图片
:param file_path: 传入gif文件的路径
:return:
"""
img_paths = [p for p in os.listdir(file_path) if os.path.splitext(p)[1] == ".png"]
for filename in img_paths:
with Image.open('{0}/{1}'.format(file_path, filename)) as im:
width, height = im.size
new_width = 150
new_height = int(new_width * height * 1.0 / width)
resized_im = im.resize((new_width, new_height))
output_filename = filename
resized_im.save('{0}/{1}'.format(file_path, output_filename))
if __name__ == '__main__':
# video2mp3(file_name='data-a.mp4')
video_add_mp3(file_name='swap-data-a.mp4', mp3_file='data-a.mp3')
# compose_gif(file_path='merged')
# compress_png(file_path='merged')
来源:https://blog.csdn.net/Tong_T/article/details/92794314


猜你喜欢
- mysql installer community 8.0.16.0安装图文教程,,供大家参考,具体内容如下一、下载mysql-instal
- 在之前的几篇文章中,介绍了业界中比较火爆的图片技术SVG(Scalable Vector Graphics),比如Iconfont(矢量图标
- 获取输入的五个点画五边形def pentagonUpdate(): p = {} win = GraphWin(&q
- var info="腾讯拍拍网(www.paipai.com)是腾讯旗下知名电子商务网站。"; info +="
- 本文实例讲述了python和mysql交互操作。分享给大家供大家参考,具体如下:python要和mysql交互,我们利用pymysql这个库
- 进度条的作用就是提示用户进度信息。可以有两种方式:1)提示完成度比如,正在安装程序的进度,一般是从0%到100%。2)提示正在进行处理比如正
- 它是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作,也很流行。算法的名字以发明者的名字命名:Ron Rivest, Adi
- 前言个人感觉骨架提取提取的就是开运算过程的不可逆。一.算法步骤1.算法步骤首先上一下比较官方的算法步骤:1.获得原图像的首地址及图像的宽和高
- 本文实例讲述了Python函数基础用法。分享给大家供大家参考,具体如下:一、什么是命名关键字参数?格式: 在*后面参数都是命名关键字参数。特
- 获取页面的编码,如果是IE浏览器用document.charset即可获取,如果用firefox需要用document.characterS
- 首先停止mysql服务: root@webserver:/home/webmaster# service mysql stop 接着采用忽略
- 一般开发,SQL Server的数据库所有者为dbo.但是为了安全,有时候可能把它换成其它的名称,所有者变换不是很方便.这里列出两种供参考
- 前言综合应用已经学习过的知识点:变量流程控制函数模块系统需求1.程序启动,显示名片管理系统欢迎界面,并显示功能菜单*************
- 本篇阅读的代码片段来自于30-seconds-of-python。1、average_bydef average_by(lst, fn=la
- 平面设计 常用尺寸 三折页广告 标准尺寸: (A4)210mm x 285mm普通宣传册 标准尺寸: (A4)210mm x 285mm文件
- 效果如下:(动态效果可复制代码查看,案例中的图片可自行选择添加)代码如下:<!DOCTYPE html><html lan
- python urllib urlopen()对象方法/代理的补充说明urllib 是 python 自带的一个抓取网页信息一个接口,他最主
- python3字符串操作 x = 'abc' y = 'defgh' print(x + y)
- 代码如下所示:# -*- coding: utf-8 -*-import base64import jsonimport urllib.pa
- 由于HTTP协议是无状态协议,所以服务器与客户端通过http协议通讯时,服务器不能记录客户端的信息。为了解决这个问题,通过 Cookie 和