bởi AMR

Một trong những lợi thế của việc trở thành một lập trình viên là khả năng xây dựng các công cụ tiện ích để cải thiện cuộc sống của bạn. Không giống như một người không phải là lập trình viên, có lẽ bạn sẽ không dành hàng giờ để tìm kiếm trong nhiều trang kết quả tìm kiếm của Google để tìm một công cụ, ngay từ đầu, được cho là sẽ cải thiện năng suất của bạn (chiến thắng trớ trêu). Điều này có thể khiến bạn cảm thấy mạnh mẽ hơn khi biết một ngôn ngữ lập trình — đặc biệt nếu ngôn ngữ Lập trình đó linh hoạt và tuyệt vời như Python.
Một trong những điểm trong The Zen of Python nói:
Đơn giản là tốt hơn phức tạp.
Với triết lý này, rất nhiều công cụ phát triển thích hợp sử dụng Python có thể được thực hiện ngắn gọn đến mức khiến tôi tự hỏi liệu có đáng để gọi nó là một công cụ hay không. Đôi khi từ script
sẽ chính xác hơn. Dù bằng cách nào, chúng tôi đang đặt ra ở đây để xây dựng một script
giúp chuyển đổi hình ảnh từ một định dạng tệp (loại hình ảnh) sang một định dạng tệp khác — chỉ trong 6 dòng mã Python.
Tuyên bố miễn trừ trách nhiệm: Số dòng (6) không bao gồm các dòng trống và nhận xét
Trong hướng dẫn này, chúng ta sẽ xây dựng một bộ chuyển đổi loại hình ảnh để chuyển đổi hình ảnh PNG thành hình ảnh JPG. Trước khi các tế bào chất xám của bạn đổ xô phán xét xem tôi có điên không khi xây dựng công cụ này, hãy để tôi nói rằng công cụ này không chỉ dành cho một hình ảnh—mà còn dành cho tất cả các hình ảnh bên trong một thư mục. Điều đó chắc chắn sẽ đòi hỏi nhiều nỗ lực thủ công hơn để thực hiện mà không cần viết mã (Tôi biết bạn có thể ngửi thấy bash
ing).
Gói Python
Chúng tôi sẽ sử dụng gói Python PIL
(viết tắt của Python Image Library) cho mục đích này. Bản gốc PIL
không nhận được bất kỳ bản cập nhật nào cho phiên bản Python mới nhất, vì vậy một số người tốt bụng đã tạo ra một ngã ba thân thiện có tên là Pillow
hỗ trợ ngay cả > Python 3.0.
Cài đặt nó bằng cách sử dụng pip3 install Pillow
.
Kịch bản bắt đầu
Có hai phần chính trong mã này. Phần đầu tiên là nơi chúng tôi nhập các gói cần thiết và phần thứ hai là nơi hoạt động thực tế diễn ra. Hoạt động thực tế có thể được chia nhỏ hơn nữa như sau:
- Lặp lại tất cả các tệp có phần mở rộng đã cho – trong trường hợp của chúng tôi
.png
– và lặp lại tất cả những điều sau đây: - Mở tệp hình ảnh (dưới dạng tệp hình ảnh)
- Chuyển đổi tệp hình ảnh sang định dạng khác (
RGB
) - Cuối cùng lưu tệp – với phần mở rộng mới
.jpg
Dòng 1 và 2:
from PIL import Image # Python Image Library - Image Processing
import glob
Phần này chỉ cần nhập các gói cần thiết. PIL
để xử lý ảnh và glob
để lặp qua các tệp của thư mục đã cho trong HĐH.
Dòng 3–6:
# based on SO Answer: https://stackoverflow.com/a/43258974/5086335
for file in glob.glob("*.png"):
im = Image.open(file)
rgb_im = im.convert('RGB')
rgb_im.save(file.replace("png", "jpg"), quality=95)
VÒNG
Vì vậy, đó là kết thúc của công cụ của chúng tôi! Bạn có thể lưu 6 dòng này dưới dạng .py
tập tin và sau đó gọi chúng trong máy tính của bạn, nơi bạn có hình ảnh để chuyển đổi.
Phát triển hơn nữa
Nếu bạn dự định cải thiện tập lệnh này hơn nữa, bạn có thể chuyển đổi toàn bộ tập lệnh này thành Công cụ Giao diện Dòng Lệnh — sau đó tất cả các chi tiết này như File Format
và Folder Path
có thể được đưa ra như các đối số do đó mở rộng sức mạnh của nó hơn nữa.