需求:将图片转成webp格式
目录
一、python 图片转webp格式
1、安装python
2、webp 依赖的包
1)、PIP 安装Pillow
2)、VSCODE 选择python版本
2.1)、测试是否安装成功
2.2)、vscode选择python版本
3、python程序
1)、导入需要的库
2)、glob 搜索指定文件
3)、文件名相关操作
3.1)、分离路径和文件名
3.2)、分离文件名和扩展名
3.3)、文件更改扩展名
3.4)、 合成路径
3.4.1)、使用os.path.join()将多个路径合成一个路径
3.4.2)、pathlib.Path()类合并
4、源码
一、python 图片转webp格式
1、安装python
其实已经安装了,但是CMD控制台,输入python后,并没有出现python信息
而是跳出应用商店,让下载python,而能是我之前的python版本低吧
新版安装后,
2、webp 依赖的包
webp是谷歌提供的格式,比PNG更小
谷歌提供了转换包,可以将其它格式转换为webp格式
1)、PIP 安装Pillow
2)、VSCODE 选择python版本
2.1)、测试是否安装成功
CMD PIP 是在最新版PYTHON上安装的,因为我有个低版本的,所以VSCODE 需要设置版本,要不然可能会出现找不到包的问题。
这个可以在 python 控制台窗口中 测试
2.2)、vscode选择python版本
使用 ctrl+shift+p 打开控制面板,
Select the interpreter,然后选择具体哪个版本的python即可
3、python程序
1)、导入需要的库
from pathlib import Path
from PIL import Image
2)、glob 搜索指定文件
使用Path 的glob 功能
当前目录下的 所有指定文件
paths=Path("Z:\\BK\\webp").glob("*.jfif")
当前目录下及其子目录下的 所有指定文件
paths=Path("Z:\\BK\\webp").glob("**/*.jfif")
3)、文件名相关操作
3.1)、分离路径和文件名
import os
path = '/home/user/folder/file.txt'
dir_path, file_name = os.path.split(path)
print('Directory path:', dir_path)
print('File name:', file_name)
Directory path: /home/user/folder
File name: file.txt
3.2)、分离文件名和扩展名
import os
file_name = 'file.txt'
name, extension = os.path.splitext(file_name)
print('File name:', name)
print('Extension:', extension)
File name: file
Extension: .txt
3.3)、文件更改扩展名
with_suffix()
是Python中pathlib.Path
类的一个方法,它可以用来更改文件的扩展名。以下是使用with_suffix()
方法更改文件扩展名的示例代码
from pathlib import Path
# 假设您有一个名为“file.txt”的文件
file_path = Path('file.txt')
# 使用with_suffix()方法更改文件扩展名
new_file_path = file_path.with_suffix('.docx')
print('New file name:', new_file_path.name)
New file name: file.docx
3.4)、 合成路径
3.4.1)、使用os.path.join()将多个路径合成一个路径
import os
path1 = '/home/user/folder'
path2 = 'file.txt'
full_path = os.path.join(path1, path2)
print('Full path:', full_path)
Full path: /home/user/folder/file.txt
3.4.2)、pathlib.Path()类合并
需要3.4以上版本
from pathlib import Path
path1 = Path('/home/user/folder')
path2 = Path('file.txt')
full_path = path1 / path2
print('Full path:', full_path)
Full path: /home/user/folder/file.txt
4、源码
from pathlib import Path
from PIL import Image
import os
imgDir="G:\\ai10"
desDir="G:\\ai10\\webp"
def convert_to_webp(source):
sourceDir,fileName=os.path.split(source)
newFileName=Path(fileName).with_suffix(".webp")
newFilePath=os.path.join(desDir,newFileName)
image=Image.open(source)
image.save(newFilePath,format="webp")
return newFilePath
def main():
paths=Path(imgDir).glob("*.jfif")
for path in paths:
webp_path=convert_to_webp(path)
print(webp_path)
main()