카테고리 없음

Python Pillow란 무엇인가?

idea9329 2024. 11. 29. 13:49
반응형

 

Pillow는 Python에서 이미지를 처리하고 조작하기 위한 강력한 라이브러리입니다.
원래 PIL(Python Imaging Library)의 후속 프로젝트로 시작되었으며, 현대 Python 환경에 맞춰 유지 관리 및 기능 개선이 이루어진 버전입니다.

Pillow는 이미지 파일 열기, 저장, 편집 등 다양한 작업을 지원하며, 웹 개발, 데이터 분석, 머신 러닝, 그래픽 디자인 등 여러 분야에서 널리 사용됩니다.


주요 기능

  1. 이미지 열기 및 저장
    • 다양한 포맷의 이미지를 열고 저장할 수 있습니다.
    • 지원 포맷: JPEG, PNG, BMP, GIF, TIFF 등
  2. 이미지 크기 조정 및 변환
    • 이미지 크기를 변경하거나 자르기, 회전, 필터 적용 등의 변환 작업 가능.
  3. 이미지 합성 및 그리기
    • 여러 이미지를 합성하거나 텍스트, 도형 등을 그릴 수 있습니다.
  4. 픽셀 데이터 접근
    • 이미지를 배열 형태로 변환하여 픽셀 단위로 세부 작업 가능.
  5. 이미지 필터 및 효과
    • 블러, 엠보싱, 샤프닝 등 다양한 필터를 제공.

설치 방법

Pillow는 pip를 사용해 간단히 설치할 수 있습니다.

pip install Pillow

설치 확인:

from PIL import Image
print("Pillow 설치 성공!")

사용 예제

1. 이미지 열기와 저장

from PIL import Image

# 이미지 열기
img = Image.open("example.jpg")

# 이미지 정보 출력
print(img.format, img.size, img.mode)

# 이미지 저장
img.save("output.png")

2. 이미지 크기 변경

from PIL import Image

# 이미지 열기
img = Image.open("example.jpg")

# 크기 조정 (100x100)
resized_img = img.resize((100, 100))

# 결과 저장
resized_img.save("resized_example.jpg")

3. 이미지 회전 및 자르기

from PIL import Image

# 이미지 열기
img = Image.open("example.jpg")

# 90도 회전
rotated_img = img.rotate(90)

# 이미지 자르기 (좌표: (x1, y1, x2, y2))
cropped_img = img.crop((50, 50, 200, 200))

# 저장
rotated_img.save("rotated_example.jpg")
cropped_img.save("cropped_example.jpg")

4. 텍스트 추가하기

from PIL import Image, ImageDraw, ImageFont

# 이미지 열기
img = Image.open("example.jpg")
draw = ImageDraw.Draw(img)

# 텍스트 추가
draw.text((10, 10), "Hello, Pillow!", fill="white")

# 저장
img.save("text_added.jpg")

주요 메서드 및 속성

메서드/속성설명

Image.open() 이미지를 열어 작업 가능한 객체로 변환.
Image.save() 작업한 이미지를 파일로 저장.
Image.resize() 이미지 크기를 조정.
Image.crop() 지정한 영역만큼 이미지를 자름.
Image.rotate() 이미지를 지정 각도만큼 회전.
ImageDraw 텍스트, 도형 등 그리기 작업을 위한 객체.
ImageFilter 필터를 적용 (블러, 샤프닝 등).

Pillow의 장점

  1. 다양한 이미지 포맷 지원
    • 대부분의 이미지 파일 포맷을 열고 저장할 수 있어 호환성이 높습니다.
  2. 간단한 사용법
    • 직관적인 API와 문법으로 쉽게 배울 수 있습니다.
  3. 확장 가능성
    • 다른 Python 라이브러리와 함께 사용하여 워크플로우를 확장할 수 있습니다.
  4. 활발한 커뮤니티와 지원
    • 풍부한 문서와 예제, 빠른 버그 수정으로 안정적입니다.

Pillow와 관련된 활용 사례

  • 웹 개발: 프로필 이미지 크기 조정, 썸네일 생성.
  • 데이터 분석: 머신 러닝 모델에 입력하기 위한 이미지 전처리.
  • 디자인 및 편집: 간단한 이미지 합성 및 편집 작업.
  • 스크린샷 처리: 자동화 도구에서 캡처된 이미지 다루기.

결론

Pillow는 Python 환경에서 이미지 처리를 위한 가장 널리 쓰이는 라이브러리로, 초보자부터 전문가까지 모두 쉽게 사용할 수 있습니다.
이미지를 열고 변환하거나, 크기를 조정하고 편집해야 한다면, Pillow는 강력한 도구가 되어 줄 것입니다.

지금 바로 설치하고, 이미지를 자유롭게 다뤄보세요! 😊

반응형