여러분은 가만히 계세요 제가 모두 고장낼게요

IT 지식, PC 모바일 문제 해결 그리고 종종 애니 게임 일상생활 근황을 종종 올리고 있어요!

냐.한국 자세히보기

카테고리 없음

옆으로 긴 이미지를 정사각형으로 자르는 파이썬 python 코드

Kamilake 2021. 1. 13. 10:36
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

해당 경로와 하위 경로에 있는 모든 이미지를 정사각형으로 자릅니다.

가로로 긴 경우만 작동하지만 조금만 손보면 세로로 긴 이미지도 OK!

개인적으로 메모하기 위해 적었지만 고칠 내용이 있으면 언제든 말해주세요 :)

import os
from PIL import Image
for root, dirs, files in os.walk('./'):
    print("탐색중인 경로: ", dirs)
    for idx, file in enumerate(files):
        fname, ext = os.path.splitext(file)
        if ext in ['.jpg','.png','.gif','.heic','.webp']:
            full_dir = root + "/" + file
            # print("files", files)
            # print("root", root)
            # print("dirs", dirs)
            # print("full_dir", full_dir)
            im = Image.open(full_dir)
            width, height = im.size
            print("Width: ",width,"px, Height: ",height,"px -> ",file)
            if width != height : #일단 가로로 긴 경우만 생각하자
                crop_image = im.crop(((width/2)-(height/2),0,(width/2)+(height/2),height))
                crop_image.save(os.path.basename(file))
            else:
                print("정사각형")
            print((width/2)-(height/2),0,(width/2)+(height/2),height)
        #n = input('입력 : ')