mirror of
https://github.com/lifegpc/msg-tool.git
synced 2026-07-08 01:31:53 +08:00
Add webp image support
This commit is contained in:
20
src/args.rs
20
src/args.rs
@@ -36,6 +36,15 @@ fn parse_zstd_compression_level(level: &str) -> Result<i32, String> {
|
||||
clap_num::number_range(level, 0, 22)
|
||||
}
|
||||
|
||||
#[cfg(feature = "webp")]
|
||||
fn parse_webp_quality(quality: &str) -> Result<u8, String> {
|
||||
let lower = quality.to_ascii_lowercase();
|
||||
if lower == "best" {
|
||||
return Ok(100);
|
||||
}
|
||||
clap_num::number_range(quality, 0, 100)
|
||||
}
|
||||
|
||||
/// Tools for export and import scripts
|
||||
#[derive(Parser, Debug)]
|
||||
#[clap(
|
||||
@@ -45,6 +54,7 @@ fn parse_zstd_compression_level(level: &str) -> Result<i32, String> {
|
||||
group = ArgGroup::new("artemis_indentg").multiple(false),
|
||||
group = ArgGroup::new("ex_hibit_rld_xor_keyg").multiple(false),
|
||||
group = ArgGroup::new("ex_hibit_rld_def_xor_keyg").multiple(false),
|
||||
group = ArgGroup::new("webp_qualityg").multiple(false),
|
||||
)]
|
||||
#[command(
|
||||
version,
|
||||
@@ -299,9 +309,17 @@ pub struct Arg {
|
||||
/// Path to the ExHibit rld def keys file, which contains the keys in BINARY format.
|
||||
pub ex_hibit_rld_def_keys: Option<String>,
|
||||
#[cfg(feature = "mozjpeg")]
|
||||
#[arg(long, global = true, default_value_t = 80, value_parser = parse_jpeg_quality)]
|
||||
#[arg(short = 'j', long, global = true, default_value_t = 80, value_parser = parse_jpeg_quality)]
|
||||
/// JPEG quality for output images, 0-100. 100 means best quality.
|
||||
pub jpeg_quality: u8,
|
||||
#[cfg(feature = "webp")]
|
||||
#[arg(short = 'w', long, global = true, group = "webp_qualityg")]
|
||||
/// Use WebP lossless compression for output images.
|
||||
pub webp_lossless: bool,
|
||||
#[cfg(feature = "webp")]
|
||||
#[arg(short = 'W', long, global = true, value_name = "QUALITY", group = "webp_qualityg", value_parser = parse_webp_quality, default_value_t = 80)]
|
||||
/// WebP quality for output images, 0-100. 100 means best quality.
|
||||
pub webp_quality: u8,
|
||||
#[command(subcommand)]
|
||||
/// Command
|
||||
pub command: Command,
|
||||
|
||||
Reference in New Issue
Block a user