From a57cb34b513876313c755be2bbebb63138b4932b Mon Sep 17 00:00:00 2001 From: gennyble Date: Mon, 10 Jun 2024 17:07:56 -0500 Subject: Add HighestBits selector to cli --- squash/Cargo.toml | 4 +++- squash/src/cli.rs | 6 ++++++ squash/src/main.rs | 3 ++- 3 files changed, 11 insertions(+), 2 deletions(-) (limited to 'squash') diff --git a/squash/Cargo.toml b/squash/Cargo.toml index 971afce..3d94c1a 100644 --- a/squash/Cargo.toml +++ b/squash/Cargo.toml @@ -11,7 +11,9 @@ repository = "https://github.com/gennyble/colorsquash/tree/main/squash" [dependencies] # the meat 'o the thing! the meaning behind it all -colorsquash = { path = "..", version = "0.2.0", features = ["gifed"] } +colorsquash = { path = "..", version = "0.2.0", default-features = false, features = [ + "gifed", +] } # just useful tools for writing binaries anyhow = "1.0.75" diff --git a/squash/src/cli.rs b/squash/src/cli.rs index d47d26b..96a0798 100644 --- a/squash/src/cli.rs +++ b/squash/src/cli.rs @@ -107,6 +107,7 @@ pub enum Selector { #[default] SortSelect, Kmeans, + HighestBits, } pub fn build() -> Cli { @@ -180,6 +181,7 @@ pub fn build() -> Cli { Some(("selector", sel)) | Some(("sel", sel)) => match sel { "sort/select" | "sorsel" => building.selector = Selector::SortSelect, "kmeans" => building.selector = Selector::Kmeans, + "highest-bits" => building.selector = Selector::HighestBits, _ => { eprintln!("'{sel}' is not recognized as a selector. See help=selectors"); std::process::exit(1); @@ -264,6 +266,10 @@ fn print_help_selectors() -> ! { println!("kmeans:"); println!(" uses the kmeans clustering algorithm to select colours."); println!(" Ignores tolerance="); + println!("highest-bits:"); + println!(" quantizes the colours by shifting the bits of their components until"); + println!(" they all fit in the palette."); + println!(" Ignores tolerance="); std::process::exit(0) } diff --git a/squash/src/main.rs b/squash/src/main.rs index c0cea51..878ae37 100644 --- a/squash/src/main.rs +++ b/squash/src/main.rs @@ -1,7 +1,7 @@ use std::time::Duration; use colorsquash::{ - selection::{Kmeans, SortSelect}, + selection::{HighestBits, Kmeans, SortSelect}, SquasherBuilder, }; @@ -34,6 +34,7 @@ fn main() -> Result<(), anyhow::Error> { builder = builder.selector(sorsel); } cli::Selector::Kmeans => builder = builder.selector(Kmeans { max_iter: 10 }), + cli::Selector::HighestBits => builder = builder.selector(HighestBits {}), }; let mut start = std::time::Instant::now(); -- cgit 1.4.1-3-g733a5