Nén hình ảnh trong Python

Nén hình ảnh là một phương pháp thường được sử dụng để giảm kích thước tệp của hình ảnh trong khi vẫn giữ được chất lượng hình ảnh của chúng. Bằng cách loại bỏ dữ liệu dư thừa hoặc không cần thiết, các kỹ thuật nén hình ảnh cho phép tải lên nhanh hơn, giảm yêu cầu lưu trữ và cải thiện việc sử dụng băng thông. Trong khi xử lý hình ảnh theo chương trình, bạn thường cần giảm kích thước của chúng. Vì vậy, trong bài viết này, bạn sẽ tìm hiểu cách dễ dàng nén hình ảnh trong ứng dụng Python.

Thư viện nén hình ảnh Python

Để nén hình ảnh trong Python, chúng tôi sẽ sử dụng Aspose.Imaging for Python. Nó là một thư viện xử lý hình ảnh mạnh mẽ cung cấp một loạt các tính năng để xử lý và thao tác hình ảnh từ bên trong các ứng dụng Python của bạn. Bạn có thể tải xuống thư viện hoặc cài đặt nó bằng lệnh sau.

> pip install aspose-imaging-python-net 

Nén một hình ảnh trong Python

Để nén hình ảnh, bạn có thể đặt giá trị của mức nén từ 0 đến 9. Giá trị 9 biểu thị mức nén tối đa và 0 là chế độ lưu trữ. Sau đây là các bước để nén hình ảnh PNG trong Python.

  • Đầu tiên, tải hình ảnh bằng lớp Hình ảnh.
  • Sau đó, tạo một đối tượng của lớp PngOptions.
  • Sau đó, đặt mức nén bằng thuộc tính PngOptions.compressionlevel.
  • Cuối cùng, lưu hình ảnh đã nén bằng phương thức Image.save(String, PngOptions).

Mẫu mã sau đây cho biết cách nén hình ảnh trong Python.

from aspose.imaging.fileformats.png import PngColorType
from aspose.imaging.imageoptions import PngOptions
from aspose.imaging import ColorPaletteHelper, Image
import os


if 'TEMPLATE_DIR' in os.environ:
	templates_folder = os.environ['TEMPLATE_DIR']
else:
	templates_folder = r"C:\Users\USER\Downloads\templates"

delete_output = 'SAVE_OUTPUT' not in os.environ


def compress_png():
  	# Đường dẫn tệp đầu vào và đầu ra
	input_file = os.path.join(templates_folder, "template.png")
	output_file = os.path.join(templates_folder, "compressed_png.png")
  
  	# Tải hình ảnh
	with Image.load(input_file) as image:
		obj_init = PngOptions()
    
    		# Đặt mức nén
		obj_init.compression_level = 9
		obj_init.progressive = True
		obj_init.color_type = PngColorType.INDEXED_COLOR
		obj_init.palette = ColorPaletteHelper.get_close_image_palette(image, 1 << 5)
    
    		# Lưu hình ảnh nén
		image.save(output_file, obj_init)

	if delete_output:
		os.remove(output_file)

Để nén hình ảnh ở các định dạng khác, chúng tôi sẽ sử dụng lớp ImageOption tương ứng. Ví dụ: để nén hình ảnh JPG, chúng tôi sẽ sử dụng JpegOptions và đối với hình ảnh Tiff, chúng tôi sẽ sử dụng TiffOptions .

Nhận thư viện nén hình ảnh miễn phí

Bạn có thể nhận giấy phép tạm thời miễn phí và nén hình ảnh trong các ứng dụng Python của mình mà không có bất kỳ giới hạn đánh giá nào.

Nén ảnh trực tuyến

Chúng tôi cũng đã tạo một công cụ dựa trên web, máy nén hình ảnh miễn phí, để nén hình ảnh trực tuyến. Bạn có thể sử dụng công cụ này để nén bao nhiêu hình ảnh tùy thích mà không cần tạo tài khoản.

Phần kết luận

Bài viết này cung cấp cho bạn một giải pháp hiệu quả để nén hình ảnh trong Python. Với sự trợ giúp của các bước và mẫu mã, bạn đã học được cách nén hình ảnh một cách dễ dàng. Ngoài ra, chúng tôi đã giới thiệu cho bạn một công cụ nén hình ảnh trực tuyến miễn phí dựa trên Aspose.Imaging dành cho Python. Bạn có thể sử dụng công cụ từ mọi nơi mà không cần tạo tài khoản.

Bạn có thể khám phá thêm về thư viện xử lý ảnh Python của chúng tôi bằng cách sử dụng tài liệu. Ngoài ra, bạn có thể chia sẻ phản hồi của mình với chúng tôi qua diễn đàn của chúng tôi.

Xem thêm