이미지를 정상적으로 불러 왔으니 가공을 해보자.
아직 어떻게 이미지를 불러오는지 모른다면 이전글 참고
Python 이미지 세로로 합치기 - 4 (이미지 불러오기)
pillow를 이용해서 이미지를 불러오고 화면에 출력해 보자. 아직 필수 라이브러리를 설치 하지 않았다면 아래 글 참고 Python 이미지 세로로 합치기 - 3 (라이브러리 설치) 필요한 라이브러리를 설치
udangco-coding-record.tistory.com
비례식을 이용하여 이미지 비율 조정하기
1. 비례식
초등학교 때 비례식을 배웠을 것이다.
이때 A는 무엇일까요?
자세한 설명은 생략하겠다.
2. 비율 조정 식
넓이가 1024px인 사각형으로 바꾼다면 높이는 몇일까?
2048 : 600 = 1024 : x
x = (600 x 1024) / 2048
즉, 바뀐 높이 = ( 높이 x 바뀔 넓이) / 넓이
이것을 그대로 코드로 옮기자.
3. 이미지의 넓이 높이 구하기
import os
from PIL import Image
img = ['1.jpg', '2.jpg', '3.jpg']
for i in img:
image = Image.open(i)
print(image.size)
image.size: image의 사이즈를 알려줘
print로 출력해보면 아래와 같이 나온다.
넓이와 높이를 변수에 넣자.
image_width = image.size[0]
image_height = image.size[1]
print('넓이: ' + str(image_width) + ' / 높이: ' + str(image_height))
print의 사용법인데 '넓이'는 텍스트고 image_width는 숫자라서 텍스트(string)로 통일해서 보여 주었다.
실행하면 아래와 같이 잘 적용되는 것을 확인할 수 있다.
4. 이미지 비율 변경
이미지 변경에는 resize가 필요하다.
resize(바뀔 넓이, 바뀔 높이)
이렇게 적용하면 된다.
new_width = 1024
new_image = image.resize((new_width, int((image_height * new_width) / image_width)))
print(new_image.size[1]) # 세로 사이즈를 확인하자
new_width: 바뀔 넓이를 변수로 만들어 주고
위에서 설명했던 비례식을 이용한 계산을 해준다.
바뀐 높이 = ( 높이 x 바뀔 넓이) / 넓이
resize에는 소수(float)가 들어갈 수 없기 때문에 int로 바꿔 주었다.
print로 변경된 높이를 확인해보면 잘 변경된 것을 확인할 수 있다.
다음 시간에는 이미지를 합쳐보자.
Python 이미지 세로로 합치기 - 6 (이미지 합치기)
이미지 비율을 일정하게 조절했다면 이제 이미지를 합쳐보자. 이미지 비율 변경을 하지 않았다면 아래 링크로 2024.03.13 - [파이썬] - Python 이미지 세로로 합치기 - 5 (이미지 비율 변경) 이전 코드 i
udangco-coding-record.tistory.com
'파이썬' 카테고리의 다른 글
Python 이미지 세로로 합치기 - 7 (GUI 디자인하기) (0) | 2024.03.13 |
---|---|
Python 이미지 세로로 합치기 - 6 (이미지 합치기) (0) | 2024.03.13 |
Python 이미지 세로로 합치기 - 4 (이미지 불러오기) (0) | 2024.03.13 |
Python 이미지 세로로 합치기 - 3 (라이브러리 설치) (0) | 2024.03.13 |
Python 이미지 세로로 합치기 - 2 (설계하기) (0) | 2024.03.12 |