fix nightly
| -rw-r--r-- | Cargo.lock | 126 | ||||
| -rw-r--r-- | Cargo.toml | 4 | ||||
| -rw-r--r-- | src/diffusion.rs | 8 | ||||
| -rw-r--r-- | src/diffusion/sierra.rs | 8 | ||||
| -rw-r--r-- | src/lib.rs | 7 | ||||
| -rw-r--r-- | src/main.rs | 4 | ||||
| -rw-r--r-- | src/ordered.rs | 2 |
7 files changed, 81 insertions, 78 deletions
@@ -4,33 +4,33 @@ version = 4 [[package]] name = "adler2" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" [[package]] -name = "atools" -version = "0.1.6" +name = "array_chunks" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0b30259e2e64cabf195f13dc5fd322b3adfef150546a2a216cf2272746bf8d5" +checksum = "75892c1bdf5a3e474bbab36fa7f08d1bcc49ce35bd08fdd44cd761805b5865ac" [[package]] -name = "bitflags" -version = "1.3.2" +name = "atools" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +checksum = "59fdfa9d3089fc0aa2676b7b3fe46484581faeef796d7b19b6eb1b908664efc3" [[package]] -name = "byteorder" -version = "1.5.0" +name = "bitflags" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" +checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" [[package]] name = "car" -version = "0.1.1" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0122f0f55893530a647617887ebb7ff0888c62966817d81de4454dcee95e1c5" +checksum = "6af0bd903a7b7fa9fbb4316af201a4034e628f4eebb8391ed6e73d78188b69da" dependencies = [ "proc-macro2", "quote", @@ -39,21 +39,21 @@ dependencies = [ [[package]] name = "cfg-if" -version = "1.0.0" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "clipline" -version = "0.1.2" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01c033212f55b799c43650c2fb12866ba8fe873e5786e7e649810c4dc9a76561" +checksum = "ebc74a32c2299faf6ff143d789e25c52712eb5f81e55c37e9c916bdf2bb6fc39" [[package]] name = "crc32fast" -version = "1.4.2" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" dependencies = [ "cfg-if", ] @@ -81,14 +81,17 @@ checksum = "6a02dba6a60cd31533cf16561ced53239686d18f1464bff49579dd320fcea081" [[package]] name = "fimg" -version = "0.4.43" -source = "git+https://github.com/bend-n/fimg#1aafaa225eb1ed9007be0a2ba961190a537edcb8" +version = "0.4.52" +source = "git+https://git.bendn.org/fimg#6db604c71c7e278c9d8c285510678dd46c49c4ab" dependencies = [ + "array_chunks", "atools", + "car", "clipline", "fer", - "hinted", + "hinted 1.0.0", "libc", + "lower", "mattr 0.0.2", "png", "umath", @@ -97,9 +100,9 @@ dependencies = [ [[package]] name = "flate2" -version = "1.0.35" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c" +checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" dependencies = [ "crc32fast", "miniz_oxide", @@ -107,9 +110,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.15" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" dependencies = [ "cfg-if", "libc", @@ -123,25 +126,31 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c488b6122f67ca2749a801d562c8c952e1778c42910c43ef537a6f5a46b524f2" [[package]] +name = "hinted" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fad79747186550b8c2ea31ec84fd8c4cdcdf9eb99ebced0f47d7d78ad3ab614b" + +[[package]] name = "libc" -version = "0.2.169" +version = "0.2.182" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" +checksum = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112" [[package]] name = "lower" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "913cca45d9edb04b7ce3334ad0e551e29b2e8f3eea7f0c9c1f799dc2f33bc80e" +checksum = "9faac1cfe5c3c955d3caa12e501034062890c67c7dd756eedfcf38709eb917d9" dependencies = [ "lower-macros", ] [[package]] name = "lower-macros" -version = "0.2.2" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b47b9bb93e25bd3fb0c352152381873c16793a4cf3d3dc3358edeb0d6ea5f563" +checksum = "a1685e573ae55817b3a8169edb1a9541b4f9e2ce166d7248e813078d2665b0f2" dependencies = [ "proc-macro2", "quote", @@ -156,15 +165,15 @@ checksum = "5f63dc7ec862e5d146c89d104d437548fef5216a6a653f4afc4b87c581970677" [[package]] name = "mattr" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47da1697d3c05194a21de2c5fa9875dfccfa4b94a7c30941b85349ec7315e516" +checksum = "2e63a98f1fe2eb6691749f29f4cbaee9b7ecab1237b7f03ae06bd39336d0322d" [[package]] name = "miniz_oxide" -version = "0.8.3" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8402cab7aefae129c6977bb0ff1b8fd9a04eb5b51efc50a70bea51cda0c7924" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" dependencies = [ "adler2", "simd-adler32", @@ -172,9 +181,9 @@ dependencies = [ [[package]] name = "png" -version = "0.17.16" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82151a2fc869e011c153adc57cf2789ccb8d9906ce52c0b39a6b5697749d7526" +checksum = "60769b8b31b2a9f263dae2776c37b1b28ae246943cf719eb6946a1db05128a61" dependencies = [ "bitflags", "crc32fast", @@ -185,27 +194,27 @@ dependencies = [ [[package]] name = "ppv-lite86" -version = "0.2.20" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" dependencies = [ "zerocopy", ] [[package]] name = "proc-macro2" -version = "1.0.93" +version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.38" +version = "1.0.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" +checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4" dependencies = [ "proc-macro2", ] @@ -248,23 +257,23 @@ dependencies = [ "car", "exoquant", "fimg", - "hinted", + "hinted 0.0.2", "lower", - "mattr 1.0.0", + "mattr 1.0.1", "rand", ] [[package]] name = "simd-adler32" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" +checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2" [[package]] name = "syn" -version = "2.0.98" +version = "2.0.116" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1" +checksum = "3df424c70518695237746f84cede799c9c58fcb37450d7b23716568cc8bc69cb" dependencies = [ "proc-macro2", "quote", @@ -279,9 +288,9 @@ checksum = "42f74eb7957e3a63fa27bfa53c3d361e7ce3871e66f2518292a011eb8e2c00cc" [[package]] name = "unicode-ident" -version = "1.0.16" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a210d160f08b701c8721ba1c726c11662f877ea6b7094007e1ca9a1041945034" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" [[package]] name = "vecto" @@ -294,25 +303,24 @@ dependencies = [ [[package]] name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" +version = "0.11.1+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "zerocopy" -version = "0.7.35" +version = "0.8.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +checksum = "db6d35d663eadb6c932438e763b262fe1a70987f9ae936e60158176d710cae4a" dependencies = [ - "byteorder", "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.7.35" +version = "0.8.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +checksum = "4122cd3169e94605190e77839c9a40d40ed048d305bfdc146e7df40ab0f3e517" dependencies = [ "proc-macro2", "quote", @@ -1,13 +1,13 @@ [package] name = "remapper" version = "0.1.0" -edition = "2021" +edition = "2024" [dependencies] atools = "0.1.5" car = "0.1.1" exoquant = "0.2.0" -fimg = { version = "0.4.43", git = "https://github.com/bend-n/fimg", default-features = false, features = [ +fimg = { version = "0.4.52", default-features = false, features = [ "save", "scale", ] } diff --git a/src/diffusion.rs b/src/diffusion.rs index 1243cc7..639f841 100644 --- a/src/diffusion.rs +++ b/src/diffusion.rs @@ -17,7 +17,7 @@ pub fn atkinson<'a, const N: usize>( 1 1 1 1 */ - let p = image.pixel(x, y); + let &p = image.pixel(x, y); let (_, new, index) = palette.closest(p); *image.pixel_mut(x, y) = new; let error = p.asub(new); @@ -42,9 +42,9 @@ pub fn jarvis<'a, const N: usize, const FAC: u8>( let out = out::build(image.width() as _, image.height() as _).pal(palette); #[rustfmt::skip] let i = image.serpent().map(|(x, y)| unsafe { - let p = image.pixel(x, y); + let &p = image.pixel(x, y); let (_, new, r) = palette.closest(p); - *image.pixel_mut(x, y) = new; + *image.pixel_mut(x, y) = new; let error = p.asub(new); let f = |f| { @@ -80,7 +80,7 @@ pub fn floyd_steinberg<'p, const FAC: u8, const N: usize>( ) -> out<'p, pal<'p, N>> { let out = out::build(image.width() as _, image.height() as _).pal(palette); let i = image.serpent().map(|(x, y)| unsafe { - let p = image.pixel(x, y); + let &p = image.pixel(x, y); let (_, new, i) = palette.closest(p); let error = p.asub(new); let f = |f| { diff --git a/src/diffusion/sierra.rs b/src/diffusion/sierra.rs index ad96acc..c03aef3 100644 --- a/src/diffusion/sierra.rs +++ b/src/diffusion/sierra.rs @@ -1,5 +1,5 @@ use super::*; -#[no_mangle] +#[unsafe(no_mangle)] fn seeerad<'p>(x: Image<Box<[f32]>, 1>, palette: pal<'p, 1>) -> out<'p, pal<'p, 1>>{ sierra::<255,1>(x, palette) } @@ -13,7 +13,7 @@ pub fn sierra<'p, const FAC: u8, const N: usize>( let fac = const { FAC as f32 / 255.0 }; #[rustfmt::skip] let i = image.serpent().map(|c @ (x, y)| unsafe { - let p = image.pixel(x, y); + let &p = image.pixel(x, y); let (_, new, i) = palette.closest(p); *image.pixel_mut(x, y) = new; let error = p.asub(new); @@ -49,7 +49,7 @@ pub fn sierra_two<'p, const FAC: u8, const N: usize>( let out = out::build(image.width(), image.height()).pal(palette); #[rustfmt::skip] let i = image.serpent().map(|c@(x, y)| unsafe { - let p = image.pixel(x, y); + let &p = image.pixel(x, y); let (_, new, i) = palette.closest(p); *image.pixel_mut(x, y) = new; let error = p.asub(new); @@ -80,7 +80,7 @@ pub fn sierra_lite<'p, const FAC: u8, const N: usize>( let out = out::build(image.width(), image.height()).pal(palette); #[rustfmt::skip] let i = image.serpent().map(|c@(x, y)| unsafe { - let p = image.pixel(x, y); + let &p = image.pixel(x, y); let (_, new, i) = palette.closest(p); *image.pixel_mut(x, y) = new; let error = p.asub(new); @@ -2,19 +2,14 @@ #![feature( custom_inner_attributes, proc_macro_hygiene, - vec_into_raw_parts, type_alias_impl_trait, - inline_const_pat, - iter_chain, adt_const_params, stmt_expr_attributes, iter_array_chunks, - let_chains, generic_const_exprs, core_intrinsics, iter_intersperse, maybe_uninit_array_assume_init, - array_windows, iter_map_windows )] #![allow(non_camel_case_types)] @@ -54,7 +49,7 @@ use std::ops::Deref; use atools::prelude::*; use dumb::Closest; -use fimg::{indexed::IndexedImage, Image}; +use fimg::{Image, indexed::IndexedImage}; fn dither<'a, const C: usize>( image: Image<impl AsRef<[f32]>, C>, diff --git a/src/main.rs b/src/main.rs index 911172e..c50d475 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,5 +1,5 @@ #![allow(incomplete_features)] -#![feature(slice_as_chunks, generic_arg_infer, iter_chain, generic_const_exprs)] +#![feature(generic_const_exprs)] use fimg::{DynImage, Image}; use remapper::pal; use std::time::Instant; @@ -87,7 +87,7 @@ fn reemap() { // .to_u8() // .save("gamma/2_4.png"); let now = Instant::now(); - let x = remapper::ordered::triangular::<1>( + let x = remapper::ordered::blue::<1>( // fimg::Image::<&[u8], 4>::make::<256, 256>().as_ref(), i, pal::new(&pal), diff --git a/src/ordered.rs b/src/ordered.rs index 9682273..854b436 100644 --- a/src/ordered.rs +++ b/src/ordered.rs @@ -198,7 +198,7 @@ where dither_with::<1024, C>( image, |((x, y), p)| unsafe { - let [noise] = BLUE.pixel(x as u32, y as u32); + let &[noise] = BLUE.pixel(x as u32, y as u32); palette.nearest(p.map(|x| triangle(x, noise))) as u32 }, palette, |