返回

Python 轻松压缩 PNG 图片,命令行操作,肉眼无差异(三)

开发工具

在上一篇文章中,我们实现了一个图片压缩函数。现在,如果您需要对图片进行压缩,可以调用已实现的函数进行压缩:

import compress_png

# 打开要压缩的图片
input_image = "image.png"

# 设置压缩率(0-100)
compression_level = 80

# 调用压缩函数
output_image = compress_png.compress_png(input_image, compression_level)

# 保存压缩后的图片
output_image.save("compressed_image.png")

但是,每次输入以下命令进行压缩:

python run_script.py

都没有对应的参数传入,因此还需要去修改脚本参数,这挺麻烦的。为了使用起来更方便,可以添加命令行的方式进行调用:

python click

库可以方便地实现这一功能。

安装 click 库

首先,使用 pip 安装 click 库:

pip install click

导入必要的模块

在您的 Python 脚本中,导入 click 模块:

import click

定义命令行选项

接下来,定义命令行选项。click.option() 装饰器用于定义命令行选项。

@click.option("-i", "--input", required=True, help="Input PNG image file path.")
@click.option("-o", "--output", required=True, help="Output compressed PNG image file path.")
@click.option("-c", "--compression-level", default=80, help="Compression level (0-100).")
  • -i, --input: 输入 PNG 图片文件的路径,这是一个必填选项。
  • -o, --output: 输出压缩后 PNG 图片文件的路径,这是一个必填选项。
  • -c, --compression-level: 压缩率(0-100),默认值为 80。

定义命令行函数

接下来,定义一个命令行函数,该函数将执行实际的压缩操作。

@click.command()
def compress_png_cli(input, output, compression_level):
    """Compress a PNG image."""
    import compress_png

    # 调用压缩函数
    output_image = compress_png.compress_png(input, compression_level)

    # 保存压缩后的图片
    output_image.save(output)
  • compress_png_cli 是命令行函数的名称。
  • input: 输入 PNG 图片文件的路径。
  • output: 输出压缩后 PNG 图片文件的路径。
  • compression_level: 压缩率。

运行脚本

最后,使用以下命令运行脚本:

python compress_png_cli.py -i input.png -o output.png

其中,input.png 是要压缩的 PNG 图片文件的路径,output.png 是输出压缩后 PNG 图片文件的路径。

总结

通过使用 click 库,我们实现了使用命令行对 PNG 图片进行压缩的功能。这种方法更加方便和易于使用。