diff options
author | gennyble <gen@nyble.dev> | 2024-06-10 17:07:56 -0500 |
---|---|---|
committer | gennyble <gen@nyble.dev> | 2024-06-10 17:07:56 -0500 |
commit | a57cb34b513876313c755be2bbebb63138b4932b (patch) | |
tree | 4efd794c2e5df183da0852044e6038912048c9c5 /squash | |
parent | 67eefd43795320043915d3527fd2716986e049d7 (diff) | |
download | colorsquash-a57cb34b513876313c755be2bbebb63138b4932b.tar.gz colorsquash-a57cb34b513876313c755be2bbebb63138b4932b.zip |
Add HighestBits selector to cli
Diffstat (limited to 'squash')
-rw-r--r-- | squash/Cargo.toml | 4 | ||||
-rw-r--r-- | squash/src/cli.rs | 6 | ||||
-rw-r--r-- | squash/src/main.rs | 3 |
3 files changed, 11 insertions, 2 deletions
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(); |