Một trong những thư viện phổ biến nhất và được coi là thư viện mặc định của python để xử lý ảnh là Pillow. Pillow là phiên bản cập nhật của Thư viện hình ảnh Python hoặc PIL và hỗ trợ một loạt chức năng thao tác hình ảnh đơn giản và nâng cao. Nó cũng là cơ sở để hỗ trợ hình ảnh đơn giản trong các thư viện Python khác như sciPy và Matplotlib.
Lắp đặt gối
Trước khi bắt đầu, chúng ta cần trăn và gối. Đối với Linux, gối có thể sẽ có ở đó, vì hương vị chính của linux bao gồm Fedora, Debian / Ubuntu và ArchLinux bao gồm Pillow trong các gói trước đó đã chứa PIL.
Cách dễ nhất để cài đặt nó là sử dụng pip:
pip install pillow
Cách tải và hiển thị hình ảnh
Trước tiên, chúng tôi cần một hình ảnh thử nghiệm để chứng minh một số tính năng quan trọng của việc sử dụng thư viện python Pillow.
Tôi đã sử dụng ảnh tượng_tự_chính làm hình ảnh mẫu. Tải xuống hình ảnh và lưu nó trong thư mục làm việc hiện tại của bạn.
#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()
Kết quả
JPEG RGB (400, 260)
Phía trên hình ảnh được tải trực tiếp bằng cách sử dụng hàm open () trên lớp Hình ảnh. Thao tác này trả về một đối tượng hình ảnh có chứa dữ liệu pixel cho hình ảnh cũng như thông tin chi tiết về hình ảnh.
Thuộc tính định dạng trên hình ảnh sẽ báo cáo định dạng hình ảnh (ví dụ:png, jpeg), chế độ sẽ báo cáo định dạng kênh pixel (ví dụ:CMYK hoặc RGB) và kích thước sẽ báo cáo kích thước của hình ảnh theo pixel (ví dụ:400 * 260)
Hàm show () sẽ hiển thị hình ảnh bằng ứng dụng mặc định của hệ điều hành.
Chuyển hình ảnh sang thang độ xám
Để chuyển đổi một hình ảnh sang thang độ xám, hiển thị và sau đó lưu nó rất dễ dàng, chỉ cần làm như sau:
#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')
Kết quả
Sau khi chạy chương trình trên, một tệp “tượng_of_unity_gs.jpg” được tạo trong thư mục làm việc hiện tại của bạn.
Chuyển đổi sang loại hình ảnh khác
Chuyển đổi hình ảnh của một loại (jpeg) sang một loại khác (giả sử, png) cũng rất dễ dàng.
from PIL import Image image = Image.open('statue_of_unity.jpg') image.save('statue_of_unity.png')
Một tệp hình ảnh mới được tạo và lưu trong thư mục mặc định của chúng tôi.
Thay đổi kích thước hình ảnh
Kích thước (kích thước) của tệp hình ảnh hiện tại của chúng tôi là 400 * 260px. Trong trường hợp chúng tôi muốn thay đổi kích thước và làm cho nó có kích thước 440 * 600px, có thể được thực hiện bằng cách:
từ Hình ảnh nhập PIL
image = Image.open('statue_of_unity.jpg') newImage = image.resize((440, 600)) newImage.save('statue_of_unity_440&600.jpg')
Tệp mới ‘tượng_of_unit_440 * 600.jpg’ có kích thước 440 * 600px được tạo và lưu trong thư mục làm việc hiện tại của bạn.
Như bạn có thể thấy, điều này phóng to hình ảnh gốc của chúng tôi thành kích thước mong muốn thay vì cắt nó, điều mà bạn có thể không muốn.
Trong trường hợp bạn muốn cắt hình ảnh hiện có, bạn có thể làm điều đó bằng cách sử dụng,
image.crop(box=None)
Xoay hình ảnh
Chương trình bên dưới tải một hình ảnh, xoay nó 45 độ và hiển thị nó bằng trình xem bên ngoài.
from PIL import Image image = Image.open('statue_of_unity.jpg') image.rotate(45).show()
Tạo hình thu nhỏ
Chương trình dưới đây sẽ tạo hình thu nhỏ 128 * 128 của tất cả các hình ảnh jpeg trong thư mục làm việc hiện tại của bạn.
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")
Kết quả
Sẽ trả về các hình thu nhỏ của tất cả tệp jpeg trong thư mục hiện tại của tôi (c:\ python \ python361) bao gồm cả hình ảnh ‘tượng_of_unity.jpg’.