2024年6月27日 星期四

藉由AI神器,生成Offline image downsizing utilities

情境:因同事經常上傳大圖檔,易造成網路壅塞瓶頸,因此請AI神器,生成離線圖檔縮小工具程式

💜處理及使用
可透過auto-py-to-exe 轉換PY程式(將下面紫色部分,用記事本複製貼上,另存成*.py檔),編譯成 EXE執行檔,

💜同仁將超大圖檔Drag-and-drop拖曳(自動讀取檔案來源將路徑傳入Argc 、Argv參數,)至 轉換好之EXE檔上面 ,即可進行圖檔縮小轉換處理。

相關程式: Image-upscaling影像圖檔模糊怎麼辦?


PROMPT提示詞下法,如下:

請寫一個PYTHON程式,
來源檔為jpg,png圖檔,影像予以縮小? max_size=(1920, 1080) ,
如來源影像大小,低於500k以下者,就不做處理,
輸入方式以argc argv方式讀取檔案
輸出檔名,與輸入檔名相同,另再加入_C



import os
import argparse
from PIL import Image

def resize_image(file_path, output_path, max_size=(1920, 1080)):
    with Image.open(file_path) as img:
        img.thumbnail(max_size, Image.Resampling.LANCZOS)
        img.save(output_path)

def main():
    parser = argparse.ArgumentParser(description='Resize images if they exceed 1MB.')
    parser.add_argument('images', metavar='N', type=str, nargs='+', help='List of image files to be processed')
    args = parser.parse_args()
    
    for img_file in args.images:
        if os.path.getsize(img_file) > 500  * 1024:  # Check if file size is greater than 500k
            file_root, file_ext = os.path.splitext(img_file)
            output_file = f"{file_root}_C{file_ext}"
            resize_image(img_file, output_file)
            print(f"Resized image saved as {output_file}")
        else:
            print(f"Image {img_file} does not exceed 500k, no resizing needed.")

if __name__ == '__main__':
    main()