File size: 2,335 Bytes
bfae1fb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ff3e715
bfae1fb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# 這個程式將 webp 圖片轉換為 jpg 格式, 
# 並儲存到指定的資料夾或與原檔案相同的資料夾中。
# 使用 PIL 庫來處理圖片格式轉換。

from PIL import Image
import os

def convert_webp_to_jpg(webp_path, output_folder=None):
    """

    將 webp 檔案轉換為 jpg 檔案。



    :param webp_path: 輸入的 webp 檔案路徑。

    :param output_folder: 輸出的資料夾路徑。如果為 None,則輸出到與輸入檔案相同的資料夾。

    :return: 輸出的 jpg 檔案路徑。

    """
    try:
        # 開啟 webp 圖片
        img = Image.open(webp_path).convert("RGB")
        
        # 決定輸出的檔案名稱與路徑
        file_name = os.path.splitext(os.path.basename(webp_path))[0]
        if output_folder:
            if not os.path.exists(output_folder):
                os.makedirs(output_folder)
            output_path = os.path.join(output_folder, f"{file_name}.jpg")
        else:
            output_path = os.path.join(os.path.dirname(webp_path), f"{file_name}.jpg")
            
        # 儲存為 jpg
        img.save(output_path, "jpeg")
        
        print(f"成功將 {webp_path} 轉換為 {output_path}")
        return output_path
    except Exception as e:
        print(f"轉換失敗:{e}")
        return None

if __name__ == '__main__':
    
    # 建立一個假的 webp 檔案以供測試
    if not os.path.exists("input_images"):
        os.makedirs("input_images")
    
    try:
        # 建立一個簡單的白色圖片
        #G:\Python\tools\input_images\1411032040-楊宗祥.webp
        dummy_webp_path = r"G:\Python\tools\input_images\1411032040.webp"

        # 測試轉換函數
        # 範例 1: 轉換並儲存在相同資料夾
        print("\n--- 範例 1: 轉換並儲存在相同資料夾 ---")
        output_path = convert_webp_to_jpg(dummy_webp_path)

        # 範例 2: 轉換並儲存在指定資料夾
        print("\n--- 範例 2: 轉換並儲存在指定資料夾 ---")
        if not os.path.exists("output_images"):
            os.makedirs("output_images")
        output_path = convert_webp_to_jpg(dummy_webp_path, "output_images")

        print(output_path)
    except Exception as e:
        print(f"執行範例時發生錯誤: {e}")