Python은 Pillow, Python Imaging 라이브러리, scikit-image 또는 OpenCV를 포함하여 이미지 처리를 위한 여러 라이브러리를 제공합니다.
Pillow 라이브러리는 이미지 조작을 위한 여러 표준 절차를 제공하고 jpeg, png, gif, tiff, bmp 등과 같은 다양한 이미지 파일 형식을 지원하므로 여기에서 이미지 처리를 위해 Pillow 라이브러리를 사용할 것입니다.
Pillow 라이브러리는 Python Imaging Library(PIL)를 기반으로 구축되었으며 상위 라이브러리(PIL)보다 더 많은 기능을 제공합니다.
설치
pip를 사용하여 베개를 설치할 수 있으므로 명령 터미널에 다음을 입력하십시오 -
$ pip install pillow
베개에 대한 기본 조작
베개 라이브러리를 사용하여 이미지에 대한 몇 가지 기본 작업을 해보겠습니다.
from PIL import Image image = Image.open(r"C:\Users\rajesh\Desktop\imagefolder\beach-parga.jpg") image.show() # The file format of the source file. # Output: JPEG print(image.format) # The pixel format used by the image. Typical values are “1”, “L”, “RGB”, or “CMYK.” # Output: RGB print(image.mode) # Image size, in pixels. The size is given as a 2-tuple (width, height). # Output: (2048, 1365) print(image.size) # Colour palette table, if any. #Output: None print(image.palette)
출력
JPEG RGB (2048, 1365) None
크기에 따라 이미지 필터링
아래 프로그램은 특정 경로(기본 경로:현재 작업 디렉토리)에서 모든 이미지의 크기를 줄입니다. 아래 주어진 프로그램에서 이미지의 max_height, max_width 또는 확장자를 변경할 수 있습니다.
코드
import os from PIL import Image max_height = 900 max_width = 900 extensions = ['JPG'] path = os.path.abspath(".") def adjusted_size(width,height): if width > max_width or height>max_height: if width > height: return max_width, int (max_width * height/ width) else: return int (max_height*width/height), max_height else: return width,height if __name__ == "__main__": for img in os.listdir(path): if os.path.isfile(os.path.join(path,img)): img_text, img_ext= os.path.splitext(img) img_ext= img_ext[1:].upper() if img_ext in extensions: print (img) image = Image.open(os.path.join(path,img)) width, height= image.size image = image.resize(adjusted_size(width, height)) image.save(os.path.join(path,img))
출력
another_Bike.jpg clock.JPG myBike.jpg Top-bike-wallpaper.jpg
위의 스크립트를 실행할 때 현재 작업 디렉토리(현재 pyton 스크립트 폴더)에 있는 이미지의 크기는 최대 900(너비/높이) 크기가 됩니다.