01. 생활 속의 닮음 (Scaling and Resizing)

1. 학습 목표 (Learning Objectives)

  • 카메라의 사진, 휴대폰 화면 확대, 축소 모형(미니어처) 등이 수학적으로 어떻게 100% 닮음 비율을 유지하는지 알아봅니다.
  • 파이썬(Python)의 기초 문법을 이용해, 원본 이미지의 픽셀(Pixel) 크기를 훼손 없이 비율대로 스케일링하는 소프트웨어적 구조를 실습해 봅니다.

2. 비율을 잊으면 괴물이 된다?

우리가 매일 쓰는 스마트폰 갤러리에서 사진을 볼 때, 화면을 두 손가락으로 줌인(Zoom-in)하거나 줌아웃(Zoom-out)합니다. 이때 얼굴 사진의 눈이 갑자기 길쭉해지거나 입술이 가로로 넓어지지 않습니다. 얼굴의 가로 길이가 2배 늘어날 때, 세로 길이도 반드시 2배가 늘어나며 비율을 촘촘히 유지하기 때문입니다.

만약 가로만 2배 늘려버린 사진을 인화한다면 어떨까요? 형태가 완전히 일그러져 기괴하게 보일 것입니다. 건축업계에서는 실제 건물 도면을 1/100, 1/50 등의 비율로 축소 모델(Model)을 만들고, 인쇄업계에서는 책의 크기를 A4에서 B5로 줄일 때 가로와 세로의 종횡비(Aspect Ratio)를 똑같이 줄여 글씨가 깨지지 않게 만듭니다.

이것이 모든 디지털 문명과 실생활을 움직이는 기하학적 닮음 유지의 법칙입니다.

2D 웹툰 사이버펑크 스타일: 빛나는 투명 스마트폰을 가진 해커가 손가락 두 개로 정밀한 수학적 분수가 떠다니는 고해상도 네온 그리드 이미지를 축척 비율 훼손 없이 완벽하게 스케일링(줌인)하는 장면

3. 파이썬으로 픽셀 사이즈 비율 구하기 (Python)

개발자들은 사진의 용량을 줄일 때, 이미지가 일그러지지(깨지지) 않게 하기 위해 원본의 가로/세로 비율 (닮음비) 을 그대로 구해서 적용하는 코드를 짭니다. 프로그래밍에서 ‘닮음’은 화질 보존과 직결됩니다.

# (예제) 4K 고화질 원본 이미지 정보
original_width = 3840  # 픽셀
original_height = 2160 # 픽셀

# 우리가 새로 만들고자 하는 썸네일(작은 창)의 가로 크기가 800 픽셀일 때, 
# '완벽하게 닮은' 직사각형이 되게 하려면 세로 크기는 어떻게 계산할까요?
target_width = 800

# 1. 닮음비 (Scale Factor) 계산하기 (크기를 얼마나 줄여야 하는가?)
# 원본의 가로 / 바꿀 가로 비율을 계산합니다.
scale_ratio = target_width / original_width

# 2. 새로운 세로 길이 구하기 
# (원본 세로 길이에 닮음비를 똑같이 곱해줍니다)
target_height = original_height * scale_ratio

print(f"원본 비율: {original_width} x {original_height}")
print(f"닮음비(축소 비율): {scale_ratio:.4f} (약 {scale_ratio*100:.1f}%)")
print(f"찌그러지지 않는 완벽한 썸네일 크기: {int(target_width)} x {int(target_height)} 픽셀")

파이썬의 실행 결과 요약:

원본 비율: 3840 x 2160
닮음비(축소 비율): 0.2083 (약 20.8%)
찌그러지지 않는 완벽한 썸네일 크기: 800 x 450 픽셀

컴퓨터 모니터는 가로와 세로의 픽셀들로 구성되어 있는데, 이처럼 스케일 팩터(Scale Factor)를 이용한 비례식($3840 : 2160 = 800 : x$) 계산은 그래픽 연산의 가장 기본적인 닮음 교과서입니다.

4. 학습 정리 (Summary)

  1. 닮음비 보존 규칙: 어떤 사물을 일그러짐 없이 온전하게 줄이거나 키우기 위해서는 외곽의 모든 모서리가 ‘똑같은’ 스케일 비율을 적용받아야 합니다.
  2. 종횡비 (Aspect Ratio): 디지털 기기에서 16:9 와 같은 화면 비율을 유지하는 것은 곧 작은 모니터나 큰 모니터가 ‘수학적으로 닮음’이 되도록 픽셀을 재배치하는 과정입니다.
서브목차