python压缩视频文件_python压缩图片和视频

引言

在真实项目中,往往要进行图片的传输和视频的传输,但因为用户上传的图片和视频所占用的大小问题而导致占用服务器的空间多,并且用户访问这些图片的时候因为图片或视频太大而长时间加载,所以要对用户上传的视频和图片进行压缩,减少服务器的占用空间和加载时间。

1.新建一个类

我们先新建一个保存图片或视频的一个类

import platform

class Compress_Pic_or_Video(object):

def __init__(self,filePath,inputName,outName=""):

self.filePath = filePath #文件地址

self.inputName = inputName #输入的文件名字

self.outName = outName #输出的文件名字

self.system_ = platform.platform().split("-",1)[0]#判断是那个操作系统,因为我的服务器是Linux的但我电脑是windows的,所以只设置了这两个系统的判断

if self.system_ == "Windows":#对windows的文件格式进行设置

self.filePath = (self.filePath + "\\") if self.filePath.rsplit("\\",1)[-1] else self.filePath

elif self.system_ == "Linux":#对Linux的文件格式进行设置

self.filePath = (self.filePath + "/") if self.filePath.rsplit("/",1)[-1] else self.filePath

self.fileInputPath = self.filePath + inputName#拼接输入的路径

self.fileOutPath = self.filePath + outName#拼接输出的路径

2.设置判断文件是否是图片或视频

@property

def is_picture(self):

picSuffixSet = {"BMP","GIF","JPEG","TIFF","PNG","SVG","PCX","WMF","EMF","LIC","EPS","TGA","JPG"}#常用后缀,集合的搜索速度快,所以用集合而不用列表,还能做到去重,避免输入了重复的后缀名

suffix = self.fileInputPath.rsplit(".",1)[-1].upper()

if suffix in picSuffixSet:

return True

else:

return False

@property

def is_video(self):

videoSuffixSet = {"WMV","ASF","ASX","RM","RMVB","MP4","3GP","MOV","M4V","AVI","DAT","MKV","FIV","VOB"}

suffix = self.fileInputPath.rsplit(".",1)[-1].upper()

if suffix in videoSuffixSet:

return True

else:

return False

3.对上传的图片进行压缩

import zlib#压缩的库

import threading#多线程

from PIL import Image

def SavePic(self):

fpsize = os.path.getsize(self.fileInputPath) / 1024 # 获得图片多少K os.path.getsize(self.picPath)返回的是字节

if fpsize >= 50.0: # 是否大于50K

im = Image.open(self.fileInp

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值