將webp格式的影象批量轉化成jpg - Python
阿新 • • 發佈:2021-10-20
有讀公眾號的習慣,有時候看到喜歡的圖片難免想儲存下來,然後再用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檔案移動到我們想要的資料夾。這裡我用“就地處理”的方式進行處理,就是在哪個資料夾轉換完後還儲存在哪個資料夾。