有读公众号的习惯,有时候看到喜欢的图片难免想保存下来,然后再用word文档或者其他啥的编辑一下,但是word文档并不支持webp,添加到word文档后是不会显示的。所以想着转换成jpg格式的。
首先是单个文件的转换:
import os from PIL import Image path = r"C:\Users\xxx\1.webp" # 打开单张图片 im=Image.open(path) # 打开路径 im.load() # 加载图片 im.save(r"C:\Users\xxx\1.jpg") # 存储为jpg格式 # os.remove(path)
当然,有时候不止一个文件,所以还得有个批量处理的:
class processImage(): """ 一个将批量将webp文件转换成jpg的程序 """ def __init__(self): self.path = r\'C:\Users\xxx\1\' # 就一个参数,就是文件夹的位置 # 读取文件夹下的文件 def loadFile(self): fileList = os.listdir(self.path) # 读取文件夹下的所有文件(包含文件夹) return fileList # 返回列表 # 查找文件夹下所有webp的图像 def webp2jpg(self, fileList:list): for item in fileList: # 循环读取列表,得到的item是文件名 if item.endswith(\'.webp\'): # 如果文件名以.webp结尾 src = os.path.join(os.path.abspath(self.path), item) # 获取文件的绝对路径 print("src=", src) # 打印看是否符合预期 im = Image.open(src) # 绝对路径打开.webp格式的文件 im.load() # 加载 save_name = src.replace(\'webp\',\'jpg\') # 保存的文件名 im.save(\'{}\'.format(save_name), \'JPEG\') # 保存 # os.remove(src) # 删除源文件 if __name__ == "__main__": nc = processImage() fileList = nc.loadFile() nc.webp2jpg(fileList)
最后一种情况就是,文件夹下有文件夹,子文件夹下也有webp格式的文件,要将他们也处理成jpg格式的,当然,可以手动移动到一个目录,然后用上面的批量代码处理。也可以用os模块,将子文件夹下的webp文件移动到我们想要的文件夹。这里我用“就地处理”的方式进行处理,就是在哪个文件夹转换完后还保存在哪个文件夹。