在 Python 中压缩图像

图像压缩是一种常用的方法,可以减小图像的文件大小,同时保持其视觉质量。通过删除冗余或不必要的数据,图像压缩技术可以加快上传速度、降低存储要求并提高带宽利用率。在以编程方式处理图像时,您经常需要减小它们的大小。因此,在本文中,您将学习如何在 Python 应用程序中轻松压缩图像。

Python图像压缩库

为了在Python中压缩图像,我们将使用Aspose.Imaging for Python。它是一个强大的图像处理库,提供一系列功能来处理和操作 Python 应用程序中的图像。您可以下载该库或使用以下命令安装它。

> pip install aspose-imaging-python-net 

在 Python 中压缩图像

要压缩图像,您可以将压缩级别的值设置为 0 到 9。值 9 表示最大压缩,0 表示存储模式。以下是在 Python 中压缩 PNG 图像的步骤。

  • 首先,使用 Image 类加载图像。
  • 然后,创建 PngOptions 类的对象。
  • 之后,使用 PngOptions.compressionlevel 属性设置压缩级别。
  • 最后,使用 Image.save(String, PngOptions) 方法保存压缩图像。

以下代码示例展示了如何在 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():
  	# 输入和输出文件路径
	input_file = os.path.join(templates_folder, "template.png")
	output_file = os.path.join(templates_folder, "compressed_png.png")
  
  	# 加载图片
	with Image.load(input_file) as image:
		obj_init = PngOptions()
    
    		# 设置压缩级别
		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)
    
    		# 保存压缩图像
		image.save(output_file, obj_init)

	if delete_output:
		os.remove(output_file)

要压缩其他格式的图像,我们将使用相应的 ImageOption 类。例如,要压缩 JPG 图像,我们将使用 JpegOptions,对于 Tiff 图像,我们将使用 TiffOptions 类。

获取免费的图像压缩库

您可以获得免费临时许可证,并在 Python 应用程序中压缩图像,没有任何评估限制。

在线压缩图像

我们还创建了一个基于网络的工具,免费图像压缩器,用于在线压缩图像。您可以使用此工具压缩所需数量的图像,而无需创建帐户。

结论

本文为您提供了一种在Python中压缩图像的有效解决方案。在步骤和代码示例的帮助下,您已经学会了如何轻松压缩图像。此外,我们还向您介绍了一个免费的在线图像压缩工具,它基于 Aspose.Imaging for Python。您可以在任何地方使用该工具,无需创建帐户。

您可以使用 文档 探索有关我们的 Python 图像处理库的更多信息。此外,您可以通过我们的论坛 与我们分享您的反馈。

也可以看看