반응형

파이썬, 이미지 썸네일 만들기

 

[예제 코드] main.py

from PIL import Image
import os
import mimetypes

def create_thumbnail(image_path, thumbnail_size=(128, 128)):
    """
    이미지 파일을 읽어 썸네일을 생성하고 저장하는 함수

    Args:
        image_path (str): 이미지 파일 경로
        thumbnail_size (tuple): 썸네일 크기 (기본값: 128x128)
    """
    try:
        img = Image.open(image_path) # 이미지 파일 열기       
        img.thumbnail(thumbnail_size)  # 썸네일 생성
        # 저장할 파일 이름 및 경로 생성
        basename = os.path.basename(image_path)
        name, ext = os.path.splitext(basename)
        thumbnail_path = os.path.join("thumbnail", f"{name}_thumbnail{ext}")        
        img.save(thumbnail_path)  # 썸네일 저장
        print(f"썸네일 저장 성공: {thumbnail_path}")
    except Exception as e:
        print(f"썸네일 처리 오류: {e}")


def main():
    """
    images 폴더의 이미지 파일들을 읽어 썸네일을 생성하고 thumbnail 폴더에 저장하는 함수
    """
    
    images_dir = "images"  # images 폴더 경로
    
    if not os.path.exists("thumbnail"):  # thumbnail 폴더 없으면 생성
        os.makedirs("thumbnail")
    
    for filename in os.listdir(images_dir):  # images 폴더의 모든 파일        
        image_path = os.path.join(images_dir, filename)  # 파일 경로 생성
        
        try:
            mime_type = mimetypes.guess_type(image_path)[0]
            if mime_type and mime_type.startswith('image'):  # 이미지 파일인지 확인
                # 썸네일 생성 및 저장
                create_thumbnail(image_path)
        except Exception as e:
            print(f"파일 처리 오류: {e}")

if __name__ == "__main__":
    main()

 

 

[파일 결과]

 

반응형

+ Recent posts