有讀公眾號的習慣,有時候看到喜歡的圖片難免想保存下來,然后再用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文件移動到我們想要的文件夾。這里我用“就地處理”的方式進行處理,就是在哪個文件夾轉換完后還保存在哪個文件夾。
