pillow에서 thumbnail 함수를 열어보면, 안에서 resize 함수를 호출함을 볼 수 있습니다. 이 글에서는 대략적으로 언급만 하고 넘어갔습니다. 오늘은 resize를 알아보겠습니다.

 

 

[관련글]

python pillow resize 함수를 알아봅시다.

 


 이미지 하나를 열어보겠습니다.

 

 288 x 288px인 이미지입니다. 저는 윈도우 11의 그림판을 실행하였습니다. 크기 조정 및 기울이기가 있습니다.

 

 가로와 세로 사이에 있는 링크 버튼을 활성화 시켜 보겠습니다. 그러면 가로 크기와 세로 크기의 비율이 일정하게 유지됩니다. 가로를 144 픽셀로 바꾸면, 세로도 자연스레 144로 바뀝니다.

 

 일정한 비율로 줄어들었습니다. thumbnail과 동일하다고 할 수 있어요. 다른 점은 thumbnail은 사진의 원본 크기보다 크게 조정되지 않는다는 것입니다.

 


 링크 버튼을 비활성화 시킨 상태로 조정해 보겠습니다. 원래 288 x 288 px이였습니다만, 288 x 144px로 조정해 보겠습니다.

 

 

 그러면 가로만 2배로 늘려진 사진으로 되었음을 알 수 있습니다.

 

 가로 288, 세로 440으로 조정해 보겠습니다. 그러면 세로만 약 1.5배 늘려진 사진이 됨을 알 수 있습니다.

 


 

 pillow의 resize는 요청한 size로 사진을 늘리거나 줄입니다. 원본 사진은 7724x5148의 jpeg 파일입니다.

 

 

  9000 by 3000으로 resize를 시켜보겠습니다.

 

 그랬더니, 가로로 길쭉한 사진으로 변환되었음을 볼 수 있습니다.

 

 600 by 3000으로 변환시킨 경우에는 위와 같은 사진이 나왔음을 알 수 있습니다. 즉, 원래 사진에서 가로 크기를 a배율로, 세로 크기를 b배율로 조정하였습니다. 그럴 때, 원래 사진에서 (x, y)에 있었던 점은 새롭게 resize된 사진에서는 (ax, by)의 위치에 있다고 생각하시면 됩니다. 예를 들어, 900 by 900 사진을 900 by 300으로 resize를 했다고 가정해 보겠습니다.

 

 

 그러면 가로 배율은 1비율, 세로 배율은 1/3이 되었습니다. 따라서 원래 (300, 600)에 있었던 점은 새롭게 resize된 사진에서 (300, 600/3)의 위치에 있습니다. pillow의 thumbnail의 내부에서도 resize를 호출합니다. 다른 점은 resize를 호출하기 전에 비율을 맞추는 전처리를 합니다.