#图像缩放 #进度条 #缩放 #分辨率 #可配置 #比例 #数量

app snapcrop

用于大量图像裁剪/缩放的 CLI 工具,具有可配置的分辨率

2 个版本

0.1.1 2023 年 10 月 9 日
0.1.0 2023 年 10 月 9 日

#647图像

MIT 许可证

4MB
266

snapcrop 🖼

简单的 CLI 工具,用于将大量图像裁剪到指定的分辨率或纵横比。

适用于机器学习任务的数据集准备。

图像将与指定的目标分辨率中最接近的纵横比相匹配,确保无扭曲。该工具在缩放过程中优先考虑图像的原始纵横比,并在裁剪时居中内容。此外,snapcrop 避免放大较小的图像,以保留其原始质量。

snapcrop 使用原始输入图像的哈希值来避免重新处理图像,允许增量重新运行到相同的输出目录(不尊重 --res 参数的变化,以避免打开图像并运行缩放逻辑以确定是否可以跳过)。

功能

  • 根据指定的分辨率缩放和裁剪图像。
  • 支持多种分辨率输入格式,从固定大小到范围。
  • 通过进度条提供反馈。
  • 使用 BLAKE3 哈希算法输出具有独特名称的裁剪图像。
  • 使用 Lanczos3 卷积进行高质量重采样。

安装

cargo install snapcrop

Github

git clone https://github.com/functorism/snapcrop.git
cd snapcrop
cargo build --release

示例和参数

Crop all your images with snapping

Examples:

Crop images to SDXL training resolutions
    snapcrop out --res 1024x1024,1152x896,896x1152,1216x832,832x1216,1344x768,768x1344,1536x640,640x1536

Crop images to the closest resolution of the provided 1:1 sizes
    snapcrop out --res 1024,768,512

Crop images to the closest resolution of 1:1 aspect ratio between 512x512 and 1024x1024 with a step of 64
    snapcrop out --res 512:1024:64

Crop images with a fixed width of 512 and a height between 1024 and 512 with a step of 64
    snapcrop out --res 512:1024:64x512

Crop images to resolution in either orientation (512x768 and 768x512)
    snapcrop out --res [512x768]

Combine freely
    snapcrop out --res [512x768],1024,512:768:64x768:1024:32


Usage: snapcrop [OPTIONS] --res <RESOLUTIONS> <OUTPUT_PATH>

Arguments:
  <OUTPUT_PATH>
          Output dir path for images

Options:
      --res <RESOLUTIONS>
          List of resolutions

  -i, --input-file <IMAGE_LIST_PATH>
          File list path, stdin used otherwise

  -l, --log <LOG_PATH>
          Output debug info to log

  -v, --verbose
          Output debug info to stderr

  -f, --format <IMAGE_FORMAT>
          [default: png]

  -h, --help
          Print help (see a summary with '-h')

视觉示例

snapcrop squares --res 256

snapcrop landscape --res 256x128

snapcrop portrait --res 128x256

snapcrop mixed --res 256,[128x256]

snapcrop steps --res [128:256:8x128:256:8]

依赖项

此 CLI 使用的主要库有

  • fast_image_resize:用于缩放图像。
  • image:用于处理不同的图像格式。
  • indicatif:用于显示进度条。
  • rayon:用于并行处理。
  • clap:用于命令行参数解析。
  • simplelog:用于日志记录。
  • blake3:用于哈希图像内容。

依赖项

~20–29MB
~280K SLoC