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