Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 이미지 작업?

<시간/>

가장 인기 있고 이미지 처리를 위한 파이썬의 기본 라이브러리로 간주되는 것 중 하나는 Pillow입니다. Pillow는 Python 이미지 라이브러리 또는 PIL의 업데이트된 버전이며 다양한 단순 및 고급 이미지 조작 기능을 지원합니다. sciPy 및 Matplotlib와 같은 다른 Python 라이브러리에서 간단한 이미지 지원을 위한 기반이기도 합니다.

베개 설치

시작하기 전에 파이썬과 베개가 필요합니다. Linux의 경우 Fedora, Debian/Ubuntu 및 ArchLinux를 포함한 주요 Linux 버전에는 이전에 PIL이 포함된 패키지에 Pillow가 포함되어 있기 때문에 Pillow가 이미 있을 것입니다.

설치하는 가장 쉬운 방법은 pip를 사용하는 것입니다.

pip install pillow

이미지 로드 및 표시 방법

먼저 Python Pillow 라이브러리 사용의 몇 가지 중요한 기능을 보여주기 위한 테스트 이미지가 필요합니다.

샘플 이미지로 statue_of_unity 사진을 사용했습니다. 이미지를 다운로드하여 현재 작업 디렉토리에 저장합니다.

#Load and show an image with Pillow
from PIL import Image

#Load the image
img = Image.open('statue_of_unity.jpg')

#Get basic details about the image
print(img.format)
print(img.mode)
print(img.size)

#show the image
img.show()

결과

JPEG
RGB
(400, 260)

Python에서 이미지 작업?

위의 이미지는 Image 클래스의 open() 함수를 사용하여 직접 로드됩니다. 이미지의 픽셀 데이터와 이미지에 대한 세부 정보가 포함된 이미지 개체를 반환합니다.

이미지의 형식 속성은 이미지 형식(예:png, jpeg)을 보고하고 모드는 픽셀 채널 형식(예:CMYK 또는 RGB)을 보고하고 크기는 이미지의 크기를 픽셀(예:400*260)로 보고합니다.

show() 함수는 운영 체제 기본 응용 프로그램을 사용하여 이미지를 표시합니다.

이미지를 회색조로 변환

이미지를 회색조로 변환하려면 이미지를 표시한 다음 저장하는 것이 매우 쉽습니다. 다음을 수행하기만 하면 됩니다.

#Import required library
from PIL import Image
#Read an image & convert it to gray-scale
image = Image.open('statue_of_unity.jpg').convert('L')
#Display image
image.show()
#Save image
image.save('statue_of_unity_gs.jpg')

결과

Python에서 이미지 작업?

위 프로그램을 실행하면 현재 작업 디렉토리에 "statue_of_unity_gs.jpg" 파일이 생성됩니다.

다른 이미지 유형으로 변환

한 유형(jpeg)의 이미지를 다른 유형(예:png)으로 변환하는 것도 매우 쉽습니다.

from PIL import Image

image = Image.open('statue_of_unity.jpg')
image.save('statue_of_unity.png')


새 이미지 파일이 생성되어 기본 디렉토리에 저장됩니다.

이미지 크기 조정

현재 이미지 파일의 크기(치수)는 400 * 260px입니다. 크기를 조정하고 440 * 600px 크기로 만들고자 하는 경우 다음을 수행할 수 있습니다.

PIL 가져오기 이미지에서


image = Image.open('statue_of_unity.jpg')
newImage = image.resize((440, 600))
newImage.save('statue_of_unity_440&600.jpg')


440 *600px 크기의 새 파일 'statue_of_unit_440*600.jpg'가 생성되어 현재 작업 디렉토리에 저장됩니다.


Python에서 이미지 작업?



보시다시피 원본 이미지를 자르지 않고 원하는 크기로 확대하여 원하지 않을 수 있습니다.

기존 이미지를 자르려면 다음을 사용하세요.

image.crop(box=None)

이미지 회전

아래 프로그램은 이미지를 로드하고 45도 회전한 다음 외부 뷰어를 사용하여 표시합니다.


from PIL import Image

image = Image.open('statue_of_unity.jpg')
image.rotate(45).show()


Python에서 이미지 작업?


썸네일 만들기

아래 프로그램은 현재 작업 디렉토리에 있는 모든 jpeg 이미지의 128*128 썸네일을 생성합니다.

from PIL import Image
import glob, os

size = 128, 128

for infile in glob.glob("*.jpg"):
file, ext = os.path.splitext(infile)
image = Image.open(infile)
image.thumbnail(size, Image.ANTIALIAS)
image.save(file + ".thumbnail", "JPEG")


결과

Python에서 이미지 작업?

'statue_of_unity.jpg' 이미지를 포함하여 현재 디렉토리(c:\python\python361)에 있는 모든 jpeg 파일의 썸네일을 반환합니다.