1. 程式人生 > 其它 >將webp格式的影象批量轉化成jpg - Python

將webp格式的影象批量轉化成jpg - Python

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