상세 컨텐츠

본문 제목

Pillow로 예술적인 이미지 변환 기술 탐구하기

카테고리 없음

by jbmu6 2025. 3. 16. 16:43

본문

Pillow 라이브러리로 이미지 편집과 필터 적용하기

Pillow는 Python 프로그래밍 언어에서 이미지 처리와 편집을 간편하게 수행할 수 있도록 돕는 강력한 라이브러리입니다. 이 글에서는 Pillow 라이브러리를 사용하여 이미지 편집과 필터 적용 방법에 대해 설명합니다. 초보자를 대상으로 하기 때문에 기초적인 개념부터 차근차근 설명하도록 하겠습니다.

Pillow 라이브러리란?

Pillow는 Python Imaging Library(PIL)의 포크로, 이미지 파일을 열고, 생성하고, 수정할 수 있는 수많은 기능을 제공합니다. 이 라이브러리를 사용하면 다양한 이미지 파일 형식을 손쉽게 다룰 수 있으며, 이미지 필터 및 변환 작업도 간편하게 수행할 수 있습니다.

Pillow 설치하기

Pillow 라이브러리를 사용하기 위해서는 먼저 설치가 필요합니다. 다음 명령어를 사용하여 Pillow를 쉽게 설치할 수 있습니다.

pip install Pillow

기본 이미지 열기

Pillow를 이용하여 이미지를 열려면 다음과 같은 코드를 사용할 수 있습니다.

from PIL import Image

image = Image.open('image.jpg')
image.show()

위의 코드는 'image.jpg'라는 파일을 열고, 그 이미지를 화면에 표시합니다.

이미지 기본 정보 확인하기

이미지를 열었으면, 다음과 같은 코드로 이미지의 기본 정보를 확인할 수 있습니다.

print(image.format)

이미지 포맷


print(image.size)

이미지 크기 (가로, 세로)


print(image.mode)

이미지 모드 (예: RGB, L 등)

이미지 편집하기

이미지 크기 조절

Pillow를 사용하면 이미지의 크기를 조절할 수 있습니다. 다음의 코드를 참고하세요.

new_image = image.resize((200, 200))
new_image.show()

위 코드는 기존 이미지를 200x200 픽셀로 조절하여 새 이미지를 생성합니다.

이미지 자르기

이미지를 자르려면 다음과 같은 코드를 사용할 수 있습니다.

cropped_image = image.crop((left, upper, right, lower))
cropped_image.show()

여기서 left, upper, right, lower는 자르고자 하는 영역의 좌표입니다.

이미지 회전하기

이미지를 회전하는 것은 매우 간단합니다. 다음 코드를 참고하세요.

rotated_image = image.rotate(90)
rotated_image.show()

위 코드는 이미지를 90도 회전시킵니다.

컬러 필터 적용하기

그레이스케일 변환

이미지를 그레이스케일로 변환하는 방법은 다음과 같습니다.

gray_image = image.convert('L')
gray_image.show()

세피아 필터 적용

세피아 필터를 적용하려면 다음과 같은 방법을 사용할 수 있습니다. 필터를 적용하기 위해 NumPy를 사용해야 합니다.

import numpy as np

def apply_sepia(image):
    sepia_filter = np.array([[0.272, 0.534, 0.131],
                             [0.349, 0.686, 0.168],
                             [0.393, 0.769, 0.189]])
    sepia_image = image.convert("RGB")
    sepiaimage = np.array(sepiaimage)
    sepiaimage = sepiaimage.dot(sepia_filter.T)
    sepiaimage = np.clip(sepiaimage, 0, 255)
    return Image.fromarray(sepia_image.astype('uint8'))

sepiaimage = applysepia(image)
sepia_image.show()

필터 적용하기

Blur 필터

블러 필터를 적용하려면 Pillow의 ImageFilter 모듈을 사용할 수 있습니다. 다음 코드를 참고하세요.

from PIL import ImageFilter

blurred_image = image.filter(ImageFilter.BLUR)
blurred_image.show()

컨투어 필터

이미지의 경계를 강조하는 컨투어 필터 또한 Pillow에서 지원합니다.

contour_image = image.filter(ImageFilter.CONTOUR)
contour_image.show()

저장하기

편집한 이미지는 다음과 같은 방법으로 저장할 수 있습니다.

newimage.save('newimage.jpg')

위 코드는 이미지를 'new_image.jpg'라는 파일명으로 저장합니다.

Pillow 활용 예제

Pillow 라이브러리를 활용하여 여러 가지 이미지를 편집할 수 있습니다. 아래는 몇 가지 활용 예제입니다.

  • 포트레이트 이미지의 배경 제거: AI 도구와 결합하여 배경을 효과적으로 제거할 수 있습니다.
  • 소셜 미디어용 썸네일 만들기: 사이즈를 조정하고 필터를 적용하여 소셜 미디어에 적합한 썸네일을 만들 수 있습니다.
  • 제품 이미지 최적화: 상품 이미지를 개선하여 온라인 판매를 위한 고품질 이미지를 생성할 수 있습니다.

마무리

Pillow 라이브러리를 통해 이미지 편집과 필터 적용을 전반적으로 살펴보았습니다. 이 라이브러리는 간단한 이미지 수정부터 시작하여 다양한 경우에 활용할 수 있는 많은 기능을 제공합니다. 초보자도 쉽게 따라할 수 있는 방법으로 명확한 이미지 처리를 구현할 수 있습니다. 앞으로 더 심화된 기능을 학습하여 자기만의 멋진 이미지를 만들어보시길 바랍니다.

</>