Appia의 IT세상

파이썬[Python, Pillow] 특정 폴더에 있는 사진들 한번에 사이즈 특정 비율로 변경하기 본문

Python/Python 응용

파이썬[Python, Pillow] 특정 폴더에 있는 사진들 한번에 사이즈 특정 비율로 변경하기

Appia 2021. 2. 21. 06:29
반응형

파이썬[Python, Pillow] 특정 폴더에 있는 사진들 한번에 사이즈 특정 비율로 변경하기

파이썬[Python, Pillow] 특정 폴더에 있는 사진들 한번에 사이즈 특정 비율로 변경하기

최근에 집에 있는 똑딱이로 사진을 찍고, 관련된 부분에 대해서 포스팅을 하다보니, 사진의 사이즈를 변경해야 하는 경우가 매우 많습니다. 각 사진마다 사이즈를 변경하는 것은 매우 번거로운 작업입니다. 그래서 이번 포스팅에서는 특정 폴더을 설정하고, 그 폴더에 있는 사진들을 한번에 이미지를 변경하는 방법에 대해서 이야기를 해보고자 합니다. 

 

먼저, 몇가지 형태로 진행하고자 합니다. 

1. 해당하는 폴더를 설정합니다. 

2. 해당하는 폴더에 있는 파일이 PIL에서 지원하는 또는 변경하고자 하는 파일의 확장자를 가지고 있는 지 여부를 확인합니다. 

3. 2번 조건에 만족하는 파일들에 대해서 사이즈를 변경합니다. 

4. 그리고 관련된 파일을 기존 이미지 파일로 저장합니다. 

from PIL import Image
import os.path

targerdir = r"D:\여행\20210212_" #해당 폴더 설정 

files = os.listdir(targerdir)

format = [".jpg",".png",".jpeg","bmp",".JPG",".PNG","JPEG","BMP"] #지원하는 파일 형태의 확장자들
for (path,dirs,files) in os.walk(targerdir):
    for file in files:
         if file.endswith(tuple(format)):
             image = Image.open(path+"\\"+file)
             print(image.filename)
             print(image.size)

             image=image.resize((int(image.size[0]*0.2), int(image.size[1]*0.2)))
             image.save(path+"\\"+file)
             print(image.size)

         else:
             print(path)
             print("InValid",file)

위의 코드를 실행하면 다음과 같은 결과가 나타납니다. 

D:\여행\20210212_\DSCF0687.JPG
(4896, 3264)
(979, 652)
D:\여행\20210212_\DSCF0688.JPG
(4896, 3264)
(979, 652)
...
D:\여행\20210212_\DSCF0778.JPG
(4896, 3264)
(979, 652)

위와 같은 형태로 변경이 가능합니다. 물론, 기존 이미지에 파일을 그대로 새로 이미지 파일로 저장을 할수도 있습니다. 이럴 경우 image.save(새로운 경로 및 파일이름) 을 활용하시면 됩니다. 

 

if문을 통해서 파일의 확장자가 지원하는 확장자인지 확인합니다. 그런 후에 해당 이미지를 파일을 불러와서 이 이미지를 사이즈를 20%로 축소하였습니다. 이런식으로 사진 이미지의 크기 및 용량등에 대해서 줄일 수 있습니다. 

 

이번 포스팅에서는 파이썬[Python, Pillow] 특정 폴더에 있는 사진들 한번에 사이즈 특정 비율로 변경하기라는 주제로 간단히 포스팅을 해봤습니다. 혹 궁금하신 점이나 문의 사항이 있으시면 언제든지 댓글 및 방명록에 글 남겨주시길 바랍니다. 감사합니다. 

 

 

반응형
Comments