#图像调整大小 #图像 #图像压缩 #编码器 #压缩 #命令行工具

bin+lib rimage

使用一流编解码器原生优化图像

18 个版本 (10 个破坏性更新)

0.11.0-next.12024年6月4日
0.10.3 2024年1月21日
0.10.2 2023年12月28日
0.9.1 2023年10月16日
0.2.0 2023年3月27日

#104 in 图像

Download history 67/week @ 2024-05-03 6/week @ 2024-05-10 4/week @ 2024-05-17 2/week @ 2024-05-24 72/week @ 2024-05-31 37/week @ 2024-06-07 8/week @ 2024-06-14 15/week @ 2024-06-28 52/week @ 2024-07-05 5/week @ 2024-07-12 150/week @ 2024-07-26 13/week @ 2024-08-02

每月165次 下载

MIT/Apache 和可能 GPL-3.0-or-later

125KB
3K SLoC

Rimage

build status docs.rs version license

一个由 squoosh! 启发的高效 Rust 图像优化 CLI 工具。

⚠️ 注意:此文档仅适用于最新版本的 rimage!您可以从 发布 标签获取最新版本,或者使用 cargo: cargo install [email protected]

功能

  • 现代编解码器
    • Rimage 使用现代编解码器优化以产生极小的图像
    • 底层使用 zune_image crate 提高性能
  • 优化操作
    • Rimage 提供了多种图像优化操作
    • 调整大小 - 使用具有卓越性能的 fast_image_resize crate
    • 量化 - 允许减少图像调色板

安装

您可以从 发布 标签下载最新版本。

如果您是 Rust 程序员,可以使用 cargo 安装 rimage。

cargo install rimage

或者,您可以使用 cargo binstall 直接从 GitHub 安装 rimage 可执行文件

cargo binstall rimage

注意

如果您只是想 使用友好的 GUI 轻松使用 RimageRimage_gui 可能适合您,它支持中文和英文。只需选择您需要的版本并下载即可使用。

使用方法

Optimize images natively with best-in-class codecs

Usage: rimage [COMMAND]

Commands:
  avif      Encode images into AVIF format. (Small and Efficient)
  farbfeld  Encode images into Farbfeld format. (Bitmapped)
  jpeg      Encode images into JPEG format. (Progressive-able)
  jpeg_xl   Encode images into JpegXL format. (Big but Lossless)
  mozjpeg   Encode images into JPEG format using MozJpeg codec. (RECOMMENDED and Small)
  oxipng    Encode images into PNG format using OxiPNG codec. (Progressive-able)
  png       Encode images into PNG format.
  ppm       Encode images into PPM format. (Bitmapped)
  qoi       Encode images into QOI format. (Trendy and Small)
  webp      Encode images into WebP format. (Lossless-able)
  help      Print this message or the help of the given subcommand(s)

Options:
  -h, --help     Print help
  -V, --version  Print version

基本优化适合网页使用

要使用默认设置优化图像,只需调用 rimage <command> 即可。例如

rimage mozjpeg ./image.jpg

默认情况下,rimage会将输出图像放置在珍贵的图像原位,如果输入和输出格式相同,则可能导致覆盖。要更改此行为,您可以使用以下选项

# will place output images in `./output` directory, images may be overwritten if has the same name
rimage mozjpeg -d ./output ./image.jpg

# will rename all input files before processing with `@backup` suffix
rimage mozjpeg --backup ./image.jpg

# will place output images in ./output directory preserving folder structure
rimage mozjpeg -d ./output -r ./inner/image.jpg ./image.jpg

预处理

Rimage具有管道预处理选项。简单用法

# will resize image to specified dimensions
rimage mozjpeg --resize 500x200 ./image.jpg

如果您想按特定顺序运行预处理管道,可以这样做

# will quantize image with 80% quality, after run resize to 64x64 pixels using the Nearest filter.
rimage mozjpeg --quantization 80 --resize 64x64 --filter nearest ./image.jpg

# will resize image to 64x64 pixels using the Nearest filter, and after run quantization with 80% quality.
rimage mozjpeg --resize 64x64 --filter nearest --quantization 80 ./image.jpg

请注意,某些预处理选项是无序的。例如,过滤器选项将对所有缩放调用应用缩放过滤器。对于抖动,也是如此,应用于每个量化调用。

高级选项

如果您想自定义优化,可以向编码器提供附加选项。对于mozjpeg,这些选项是有效的

Options:
  -q, --quality <NUM>         Quality, values 60-80 are recommended. [default: 75]
      --chroma_quality <NUM>  Separate chrome quality.
      --baseline              Set to use baseline encoding (by default is progressive).
      --no_optimize_coding    Set to make files larger for no reason.
      --smoothing <NUM>       Use MozJPEG's smoothing.
      --colorspace <COLOR>    Set color space of JPEG being written. [default: ycbcr] [possible values: ycbcr, grayscale, rgb]
      --multipass             Specifies whether multiple scans should be considered during trellis quantization.
      --subsample <PIX>       Sets chroma subsampling.
      --qtable <TABLE>        Use a specific quantization table. [default: NRobidoux] [possible values: AhumadaWatsonPeterson, AnnexK, Flat, KleinSilversteinCarney, MSSSIM, NRobidoux, PSNRHVS, PetersonAhumadaWatson, WatsonTaylorBorthwick]

有关更多信息,请使用 rimage help <命令>

有关库使用,请参阅 Docs.rs

支持的编解码器列表

图像编解码器 解码器 编码器 注意
avif libavif ravif 仅公共功能,静态
bmp zune-bmp X 仅输入
farbfeld zune-farbfeld zune-farbfeld
hdr zune-hdr zune-hdr
jpeg zune-jpeg mozjpeg或jpeg-encoder 当使用mozjpeg编码器时,多功能
jpeg-xl jxl-oxide zune-jpegxl 仅无损
png zune-png oxipng或zune-png 仅静态,当使用oxipng编码器时,多功能
ppm zune-ppm zune-ppm
psd zune-psd X 仅输入
qoi zune-qoi zune-qoi
webp webp webp 仅静态

支持的预处理选项列表

  • 缩放
  • 量化
  • Alpha预乘

已知问题

  • 目录路径以 \ 结尾可能导致rimage崩溃,原因是cmd错误 #72653

示例

这将崩溃

rimage png "D:\example.jpg" -d "D:\desktop\" -s "suffix"

这将按预期工作

rimage png "D:\example.jpg" -d "D:\desktop" -s "suf test" # without trailing backslash

rimage png "D:\example.jpg" -s "suffix"  -d "D:\desktop\" # backslash at the end

贡献

阅读贡献指南以获取构建说明和指南。

许可

Rimage在Apache License 2.0MIT License下双许可。您可以选择其中一种许可证用于您的使用。

除非您明确声明,否则您有意提交以包含在您的工作中的任何贡献,根据Apache-2.0许可证定义,应按上述方式双许可,而无需任何其他条款或条件。

更改日志

查看更改日志以获取特定版本的更改。

依赖关系

~16–31MB
~438K SLoC