콘텐츠로 건너뛰기

Pillow 이미지 사용법: 손쉽게 배우기

[

Python Pillow 라이브러리를 사용한 이미지 처리

기본 이미지 작업

Python Pillow 라이브러리는 이미지 처리를 위한 파이썬 라이브러리입니다. 이전에 사용되던 PIL(Python Imaging Library)의 분기 버전으로, 이미지 관련 작업을 쉽게 처리할 수 있도록 도와줍니다. Pillow는 최고의 기능을 제공하는 다른 파이썬 이미지 처리 라이브러리들과 달리, 이미지를 이해하고 처리하기에 중요한 도구입니다.

이 튜토리얼에서는 Python Pillow 라이브러리를 사용하여 이미지를 조작하고 기본적인 이미지 처리를 수행하는 방법을 배울 것입니다.

Pillow를 사용하여 이미지 읽기

가장 먼저, Pillow를 사용하여 이미지를 읽어봅시다. 아래의 예제 코드를 따라해보세요.

from PIL import Image
# 이미지 파일 열기
image = Image.open("image.jpg")
# 이미지 정보 출력
print("이미지 크기:", image.size)
print("이미지 모드:", image.mode)

위 예제 코드에서는 PIL의 Image 모듈을 import하고, Image.open() 함수를 사용하여 이미지 파일을 엽니다. 이후 sizemode 속성을 사용하여 이미지의 크기와 모드를 출력합니다.

기본적인 이미지 조작

Python Pillow 라이브러리를 사용하면 간단한 이미지 조작도 가능합니다. 아래 예제 코드를 사용하여 이미지를 크기를 조정해봅시다.

from PIL import Image
# 이미지 파일 열기
image = Image.open("image.jpg")
# 이미지 크기 변경
resized_image = image.resize((800, 600))
# 변경된 이미지 저장
resized_image.save("resized_image.jpg")

위 예제 코드에서는 resize() 함수를 사용하여 이미지의 크기를 변경하고, save() 함수를 사용하여 변경된 이미지를 저장합니다.

Python Pillow 라이브러리를 사용한 이미지 처리

Python Pillow 라이브러리를 사용하면 이미지 처리를 할 수 있습니다. 예를 들어, 아래 예제 코드를 사용하여 이미지를 회전시켜보겠습니다.

from PIL import Image
# 이미지 파일 열기
image = Image.open("image.jpg")
# 이미지 회전
rotated_image = image.rotate(90)
# 회전된 이미지 저장
rotated_image.save("rotated_image.jpg")

위 예제 코드에서는 rotate() 함수를 사용하여 이미지를 90도 회전시키고, save() 함수를 사용하여 이미지를 저장합니다.

NumPy와 Pillow를 사용한 이미지 처리

NumPy 배열을 사용하면 Pillow를 함께 사용하여 이미지를 처리할 수 있습니다. 예를 들어, 아래 예제 코드를 사용하여 이미지의 픽셀 값을 변경해봅시다.

from PIL import Image
import numpy as np
# 이미지 파일 열기
image = Image.open("image.jpg")
# NumPy 배열로 변환
image_array = np.array(image)
# 이미지 처리
processed_array = image_array * 2
# 처리된 NumPy 배열을 Image 객체로 변환
processed_image = Image.fromarray(processed_array)
# 변환된 이미지 저장
processed_image.save("processed_image.jpg")

위 예제 코드에서는 numpy 모듈을 사용하여 이미지를 NumPy 배열로 변환하고, 해당 배열을 처리한 후 다시 Image.fromarray() 함수를 사용하여 Image 객체로 변환합니다.

애니메이션 생성하기

Pillow를 사용하여 이미지를 연속적으로 변경하면 애니메이션을 만들 수 있습니다. 아래 예제 코드를 사용하여 이미지의 크기를 변경하면서 애니메이션을 만들어봅시다.

from PIL import Image
from PIL import ImageSequence
# 이미지 파일 열기
image = Image.open("image.gif")
# 이미지 프레임 추출
frames = ImageSequence.all_frames(image)
# 애니메이션 생성
resized_frames = []
for frame in frames:
resized_frame = frame.resize((500, 500))
resized_frames.append(resized_frame)
# 생성된 애니메이션 저장
resized_frames[0].save("animation.gif", append_images=resized_frames[1:], save_all=True, duration=300, loop=0)

위 예제 코드에서는 ImageSequence.all_frames() 함수를 사용하여 GIF 이미지의 모든 프레임을 추출하고, 이를 변경하고 다시 저장합니다.

이제 Python Pillow 라이브러리를 사용하여 이미지를 조작하고 기본적인 이미지 처리를 수행하는 방법을 알게 되었습니다. 이 튜토리얼을 통해 여러분은 Python으로 이미지 작업을 수행하는 방법을 배웠습니다. 더 많은 기능과 메소드를 사용하려면 Pillow의 공식 문서를 참조해보세요. 이제 이미지를 다루는데 앞서 기본을 익힌 것이기 때문에, 직접 다운로드한 이미지를 사용하여 Pillow를 활용해보세요.