multi_model_detection / image_converter.py
andythebest's picture
fix MLLM user define prompt
ff3e715 verified
# 這個程式將 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}")