Python 视频格式转MP3等音频格式,以及图片大小转换

这是个视频转音频以及图片大小转换的小程序。转换后的文件会保存在原文件的目录下。

另外需要安装库moviepy和pillow

 

from moviepy.editor import *#pip install moviepy
from tkinter import *
from tkinter import ttk
from tkinter import filedialog
from tkinter import messagebox
import os
from PIL import Image#pip install pillow
import os.path
def picture_change():
    file_path=filedialog.askopenfilename(title='请选择文件', filetypes=[('jpg', '*.jpg'),('png', '*.png'),('All Files', '*')],initialdir='C:\\',multiple=True)
    width=int(list[1].get())
    height=int(list[2].get())
    for i in file_path:
        filename = os.path.split(i)
        outdir=filename[0]+'/'
        try:
            img=Image.open(i) 
            new_img=img.resize((width,height),Image.BILINEAR)   
            new_img.save(os.path.join(outdir,os.path.basename(i)))
        except:
            messagebox.showinfo(title='错误', message='转换失败,请检查格式')
            break
def movie_change():
    file_path=filedialog.askopenfilename(title='请选择文件', filetypes=[('mp4', '*.mp4'),('wmv', '*.wmv'),('avi', '*.avi'),('mpeg', '*.mpeg'),('mov', '*.mov'),('ogv', '*.ogv'),('All Files', '*')],initialdir='C:\\',multiple=True)
    for i in file_path:
        try:
            video = VideoFileClip(i)
        except:
            messagebox.showinfo(title='错误', message='文件格式错误')
        filename = os.path.split(i)
        extension = os.path.splitext(i)
        name = filename[1].replace(extension[1],"")
        audio = video.audio
        audio.write_audiofile(filename[0]+'/'+name+'.'+list[0].get())
list = {}
root = Tk()
root.title("转换器")    
root.geometry("290x250") 
root.resizable(width=False, height=False)
#视频转换器**************************
fm=Frame(root)
Button(fm,text='打开视频文件',command=movie_change,activeforeground="white",activebackground='gray',bg='white',fg='black',height=2,width=12,wraplength=100).pack(side=LEFT,padx=10)
fm1=Frame(fm)
Label(fm1, text="请选择转换格式", font=("Arial",12), width=100, height=1).pack(side=TOP)
list[0]=ttk.Combobox(fm1,textvariable=StringVar(),font=('Arial', 15),width=5)
list[0]["values"]=("mp3","wav") 
list[0].current(0) 
list[0].pack(side=TOP,pady=20)
fm1.pack(side=LEFT,padx=30)
fm.pack(side=TOP,pady=20)
#图片大小转换器**************************
fm=Frame(root)
Button(fm,text='打开图片文件',command=picture_change,activeforeground="white",activebackground='gray',bg='white',fg='black',height=2,width=12,wraplength=100).pack(side=LEFT,padx=10)
fm1=Frame(fm)
Label(fm1, text="请输入大小", font=("Arial",12), width=100, height=1).pack(side=TOP)
fm2=Frame(fm1)
list[1]=Entry(fm2, show=None, font=('Arial', 14),width=4)
list[1].insert(0, '500')#插入默认值
list[1].pack(side=LEFT)
Label(fm2, text="X", font=("Arial",12), width=2, height=1).pack(side=LEFT)
list[2]=Entry(fm2, show=None, font=('Arial', 14),width=4)
list[2].insert(0, '500')#插入默认值
list[2].pack(side=LEFT)
fm2.pack(side=TOP,pady=20)
fm1.pack(side=LEFT,padx=30)
fm.pack(side=TOP)
root.mainloop()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

幽默小书生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值