背景
我们经常在网上看到好看的或有用途的图片就会下载保存,现在很多的图片格式都是webp的特别是微信公众号中的图片,很多场景下webp格式图片需要转换成jpeg或png格式图片才能使用,网上用很多图片转换工具可以做到图片格式转换,今天我来分享下如何利用python3代码实现将webp格式图片转换成jpeg或png格式图片。
思路
其实思路很简单,使用PIL
模块打开图片,另存为就可以了
代码实现
# 功能 : 将当前工作目录下所有webp格式转为png or jpg
# -*- coding: UTF-8 -*-
import os
from PIL import Image
# 返回当前工作目录
CURRENT_PATH = './mp/imgs'
# 转换格式
IMG_EXP = ".png"
# 获取最高所有文件
cur_all_files = os.listdir(CURRENT_PATH)
# 转换列表
imgList = []
# 遍历文件夹,储存webp格式的路径到列表内
def findFileForImage(filePath):
child_all_files = os.listdir(filePath)
for child_file_name in child_all_files:
sPath = os.path.join(filePath, child_file_name)
if os.path.isdir(sPath):
findFileForImage(sPath)
n,e = os.path.splitext(child_file_name)
if e.lower() == ".webp":
imgList.append(os.path.join(filePath, n))
# 检索目录下所有的webp文件,如果是文件夹则继续向下检索
for file_name in cur_all_files:
nPath = os.path.join(CURRENT_PATH, file_name)
# 文件夹
if os.path.isdir(nPath):
findFileForImage(nPath)
continue
# 储存
name, ext = os.path.splitext(file_name)
if ext.lower() == ".webp":
imgList.append(os.path.join(CURRENT_PATH, name))
# 转换图片
def convertImage():
for webpPath in imgList:
print(webpPath)
# 打开图片并赋值一份新的图片
img = Image.open(webpPath+".webp")
img.load()
# 将赋值的图片修改后缀保存在原路径
img.save(webpPath+IMG_EXP)
# 删除原webp图
os.remove(webpPath+".webp")
# 执行
convertImage()
总结
python写脚本首先要屡清思路,利用python庞大的第三方类库就可以实现你想要的脚本了