Nhập các Module cần thiết cho Python
Để bắt đầu
, chúng ta cần nhập các module cần thiết. Module quan trọng nhất ở đây là PIL (Pillow), một thư viện mạnh mẽ để xử lý ảnh trong Python. Ngoài ra, chúng ta cũng sẽ sử dụng module os
để làm việc với hệ thống tập tin.
from PIL import Image
import os
Để sử dụng Pillow, bạn cần cài đặt nó. Nếu bạn chưa cài đặt, bạn có thể sử dụng pip:
pip install Pillow
Sau khi cài đặt, bạn có thể nhập module Image từ PIL để bắt đầu xử lý ảnh. Module os
được tích hợp sẵn trong Python, nên bạn không cần cài đặt thêm. Nếu bạn chưa có module PIL hãy chạy lệnh pip install Pillow để cài đặt thư viện Pillow.
Xây dựng Hàm Thay Đổi Kích Thước Ảnh (Resize)
Tiếp theo, chúng ta sẽ xây dựng hàm resize
. Hàm này sẽ nhận vào Hai tham số: im
(đối tượng Image) và new_width
(chiều rộng mới mà bạn muốn thay đổi). Hàm này sẽ tính toán chiều cao mới dựa trên tỷ lệ giữa chiều rộng và chiều cao ban đầu của ảnh, sau đó sử dụng hàm resize
của PIL để thay đổi kích thước ảnh.
def resize(im, new_width):
width, height = im.size
ratio = int(width/height)
new_height = ratio*new_width
resized_image = im.resize((new_width, new_height))
return resized_image
Hàm này sẽ trả về một đối tượng Image mới với kích thước đã được thay đổi. Việc tính toán tỷ lệ là rất quan trọng để đảm bảo ảnh không bị méo hoặc biến dạng. Cần nhập các module vào hệ thống để có thể sử dụng được các hàm trong các module đó. Hãy tạo một hàm resize để có thể thay đổi kích thước của ảnh một cách dễ dàng.
Xử lý Nhiều Định Dạng Ảnh trong Python
Công cụ của chúng ta cần phải xử lý nhiều định dạng ảnh khác nhau, như JPG, PNG, GIF, và ICO
. Để làm điều này, chúng ta sẽ tạo một danh sách các phần mở rộng tập tin mà công cụ sẽ hỗ trợ.
extensions = ["jpg", "png", "gif", "ico"]
Sau đó, chúng ta sẽ sử dụng một vòng lặp để duyệt qua tất cả các tập tin trong thư mục chỉ định. Trong mỗi lần lặp, chúng ta sẽ kiểm tra xem phần mở rộng của tập tin có nằm trong danh sách các phần mở rộng được hỗ trợ hay không. Nếu có, chúng ta sẽ mở tập tin ảnh và thay đổi kích thước nó. Công đoạn này được thực hiện tuần tự qua từng bước để có thể làm việc được với nhiều loại định dạng ảnh.
for file in files:
extension = file.split(".")[-1]
if extension in extensions:
im = Image.open("Photos/" + file)
resized_image = resize(im, 400)
filepath = f"Photos/{file.split('.')[0]}(resized).jpg"
resized_image.save(filepath)
Lưu Ảnh Đã Được Thay Đổi Kích Thước từ Python
Hàm lưu trữ ảnh của Python được gọi là filepath, nó giúp lưu trữ những hình ảnh đã thay đổi một cách đơn giản.