將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文件移動到我們想要的文件夾。這里我用“就地處理”的方式進行處理,就是在哪個文件夾轉換完后還保存在哪個文件夾。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM