Python cung cấp nhiều thư viện để xử lý hình ảnh bao gồm thư viện Pillow, Python Imaging, scikit-image hoặc OpenCV.
Chúng tôi sẽ sử dụng thư viện Pillow để xử lý hình ảnh ở đây vì nó cung cấp nhiều quy trình tiêu chuẩn để xử lý hình ảnh và hỗ trợ nhiều định dạng tệp hình ảnh như jpeg, png, gif, tiff, bmp và các định dạng khác.
Thư viện Pillow được xây dựng dựa trên Thư viện ảnh Python (PIL) và cung cấp nhiều tính năng hơn so với thư viện mẹ của nó (PIL).
Cài đặt
Chúng ta có thể cài đặt gối bằng pip, vì vậy chỉ cần nhập lệnh sau vào terminal lệnh -
$ pip install pillow
Thao tác cơ bản trên gối
Hãy là một số thao tác cơ bản trên hình ảnh bằng thư viện gối.
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)
Đầu ra
JPEG RGB (2048, 1365) None
Lọc hình ảnh dựa trên kích thước
Chương trình dưới đây sẽ giảm kích thước của tất cả các hình ảnh từ một đường dẫn cụ thể (đường dẫn mặc định:thư mục làm việc hiện tại). Chúng tôi có thể thay đổi max_height, max_width hoặc phần mở rộng của hình ảnh trong chương trình cho sẵn dưới đây:
Mã
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))
Đầu ra
another_Bike.jpg clock.JPG myBike.jpg Top-bike-wallpaper.jpg
Khi chạy tập lệnh trên, kích thước của hình ảnh có trong thư mục làm việc hiện tại (hiện là thư mục tập lệnh pyton), sẽ có kích thước tối đa là 900 (chiều rộng / chiều cao).