수학과의 좌충우돌 프로그래밍

[Django] 썸네일 만들기 본문

웹프로그래밍/Django

[Django] 썸네일 만들기

ssung.k 2019. 3. 2. 04:25

안녕하세요 강민성입니다.


이번에는 썸네일에 대해서 알아보도록 하겠습니다.


썸네일이 무엇인지 들어보셨나요?


썸네일이란 여러 이미지 파일 중 이를 대표하는 이미지 파일을 말합니다.


이 블로그 포스팅도 마찬가지입니다.


저는 여러 이미지를 첨부하지만, 목록에서는 대표하는 이미지 하나만 보여주게 되죠.


장고에서도 이런 썸네일을 지정할 수 있습니다.


장고에서 썸네일을 지정하면 이점이 뭐가 있을까요?


다음과 같은 이점이 있습니다.


1. 파일 용량관리에 유리하다.


2. 파일 분류에 효율적이다.




thumbnail 만들기


 thumbnail 이라는 새로운 프로젝트를 만들고


thumbnailapp 이라는 이름으로 앱을 만들어주었습니다.(settings 에 등록!)


기본 과정은 생략하도록 하겠습니다.


장고 기본 과정


media 파일 추가하기


현재는 위 두 링크의 과정이 완료된 상태입니다.



현재 등록된 장고 이미지에 대해서 썸네일로 만들어보도록 하겠습니다.


썸네일을 만들기 위힌 pip 패키지가 몇 개 있지만 그 중에서 imagekit을 사용하겠습니다.


설치 방법은 아래와 같습니다.


pip install pillow django-imagekit

이는 새로운 앱과 같으므로 settings에 추가해줘야합니다.




여기까지 thumbnail 을 사용하기 위한 기본 조건은 모두 만족시켰습니다.


thumbnail 에 대한 새로운 model을 하나 만들어줘야합니다.


그리고 두 가지를 추가적으로 import 해주는데


thumbnail 에 만드는 필드와, 이 크기를 쉽게 조절해주는 함수입니다.


이제 image_thunbnail 이라는 변수에 필드를 지정해주었습니다.


ImageSpecField 는 


source 를 통해 어떤 데이터를 썸네일로 만들지,


processors 와 ResizeToFill 을 사용하여 크기를 조절하게 됩니다.


그리고 format 을 사용하여 어느 확장자로 만들지 결정도 할 수 있습니다.



이제 html 파일로 넘어가 image_thumbnail 을 추가해주면



크기가 작은 썸네일 이미지를 확인할 수 있습니다.


마무리



지금은 front에 아예 신경을 안써 무의미하지만 


생각해보면 thumbnail 이미지를 사용할 일이 많을 것입니다.


당장 제가 지금 진행하고 있는 프로젝트에서도 이를 요긴하게 쓰고 있으니까요.


쉽고 금방 구현할 수 있으니 잘 사용하시길 바랍니다.


Comments