Python에서 이미지를 추가하는 경우 썸네열(Thumbnail) 이미지가 필요한 경우가 있습니다. 아니면 리사이즈 된 이미지를 저장할 수도 있죠. 이 경우 어떻게 하는지 알아봅니다.

Python에서 사용가능한 패키지로 PIL 또는 Pillow가 존재합니다. PIL은 Python Image Library의 약자로 다양한 기능을 가지고 있습니다. 그 중에는 물론 이미지의 크기를 조절할 수 있습니다.


# Python에 PIL 설치하기


먼저 PIL을 설치하는 방법을 알아봅니다. 설치를 하기 위해 아래와 같이 Package를 다운로드합니다.

> pip install Pillow

인스톨이 끝나면 이제 썸네일을 생성하는 방법을 알아봅니다.


# Python 썸네일 또는 리사이즈 알아보기

리사이즈를 수행하기 위하여 아래의 코드를 추가합니다.

! 파이썬 파일 /upload/ 경로에 업로드
# Create thumbnail Example
im = Image.open('test.jpg')
size = (128, 128)
im.thumbnail(size)
im.save('test_th.jpg')
그럼 아래부터는 위 코드를 자세히 알아봅니다. 참고로 이미지가 심하게 깨지는 것을 방지하려면 아래와 같이 thumbnail()에 옵션을 추가하여 사용합니다.

im.thumbnail(size, Image.ANTIALIAS)


! im = Image.open() 
해당 파일을 불러옵니다. 현재 위치에 test.jpg가 존재해야합니다. 참골, 상대경로를 사용할 수 있습니다. 즉 ('./test.jpg')와 같이 사용할 수 있습니다. 경로의 base 폴더 기준은 실행되는 Python 파일의 위치입니다.

! size = (128, 128)
사이즈의 크기를 결정합니다. 최대, 최소의 값으로 사용됩니다. im.thumbnail(size)는 썸네일을 적용합니다.

! im.save()
해당하는 이름으로 파일을 저장합니다.

이제 모든 준비가 끝났습니다. 아래는 파일을 추가하는 html 파일로 필요한 경우 참고하시기 바랍니다.

<form method="post" enctype="multipart/form-data" action="/uploadfile/">
  <input type="file" name="file" />
  <button type="submit">Upload</button>
</form>

위 코드는 post 메소드 방식으로 파일을 uploadfile의 경로에 보내게 됩니다.