From 80c7d36842d21bff07f3a4af69fa11abd931f5f9 Mon Sep 17 00:00:00 2001 From: Emil Ernerfeldt Date: Mon, 13 May 2024 13:35:15 +0200 Subject: [PATCH] Update `image` crate to 0.25 (#4160) To not produce duplicating deps in Rerun (https://github.com/rerun-io/rerun/pull/5280) I suggest we wait with merging this until these crates have updated to `image` 0.25: * [x] [`arboard`](https://crates.io/crates/arboard) * [x] [`gltf`](https://crates.io/crates/gltf) --- Cargo.lock | 57 ++++++++++------------------ Cargo.toml | 1 + crates/eframe/Cargo.toml | 4 +- crates/eframe/src/icon_data.rs | 2 +- crates/eframe/src/native/app_icon.rs | 2 +- crates/egui_demo_app/Cargo.toml | 5 +-- crates/egui_extras/Cargo.toml | 5 +-- crates/egui_extras/README.md | 2 +- crates/egui_extras/src/image.rs | 4 +- crates/egui_extras/src/loaders.rs | 2 +- examples/images/Cargo.toml | 5 +-- examples/save_plot/Cargo.toml | 2 +- examples/screenshot/Cargo.toml | 2 +- 13 files changed, 33 insertions(+), 60 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 198494929e5..373236f1883 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -819,12 +819,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ecdffb913a326b6c642290a0d0ec8e8d6597291acdc07cc4c9cb4b3635d44cf9" -[[package]] -name = "color_quant" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" - [[package]] name = "com" version = "0.6.0" @@ -2072,17 +2066,16 @@ dependencies = [ [[package]] name = "image" -version = "0.24.7" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f3dfdbdd72063086ff443e297b61695500514b1e41095b6fb9a5ab48a70a711" +checksum = "a9b4f005360d32e9325029b38ba47ebd7a56f3316df09249368939562d518645" dependencies = [ "bytemuck", "byteorder", - "color_quant", - "jpeg-decoder", - "num-rational", "num-traits", "png", + "zune-core", + "zune-jpeg", ] [[package]] @@ -2188,12 +2181,6 @@ dependencies = [ "libc", ] -[[package]] -name = "jpeg-decoder" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc0000e42512c92e31c2252315bda326620a4e034105e900c98ec492fa077b3e" - [[package]] name = "js-sys" version = "0.3.69" @@ -2498,27 +2485,6 @@ dependencies = [ "minimal-lexical", ] -[[package]] -name = "num-integer" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" -dependencies = [ - "autocfg", - "num-traits", -] - -[[package]] -name = "num-rational" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - [[package]] name = "num-traits" version = "0.2.16" @@ -4883,6 +4849,21 @@ dependencies = [ "syn 2.0.48", ] +[[package]] +name = "zune-core" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f423a2c17029964870cfaabb1f13dfab7d092a62a29a89264f4d36990ca414a" + +[[package]] +name = "zune-jpeg" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec866b44a2a1fd6133d363f073ca1b179f438f99e7e5bfb1e33f7181facfe448" +dependencies = [ + "zune-core", +] + [[package]] name = "zvariant" version = "3.15.0" diff --git a/Cargo.toml b/Cargo.toml index 0853df671d6..aa0d4153fad 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -71,6 +71,7 @@ backtrace = "0.3" criterion = { version = "0.5.1", default-features = false } document-features = " 0.2.8" glow = "0.13" +image = { version = "0.25", default-features = false } log = { version = "0.4", features = ["std"] } nohash-hasher = "0.2" parking_lot = "0.12" diff --git a/crates/eframe/Cargo.toml b/crates/eframe/Cargo.toml index 33cc5ba6bfe..bb3544fffa4 100644 --- a/crates/eframe/Cargo.toml +++ b/crates/eframe/Cargo.toml @@ -154,9 +154,7 @@ egui-winit = { workspace = true, default-features = false, features = [ "clipboard", "links", ] } -image = { version = "0.24", default-features = false, features = [ - "png", -] } # Needed for app icon +image = { workspace = true, features = ["png"] } # Needed for app icon winit = { workspace = true, default-features = false, features = ["rwh_06"] } # optional native: diff --git a/crates/eframe/src/icon_data.rs b/crates/eframe/src/icon_data.rs index 847228f9ec0..ed514d00e1f 100644 --- a/crates/eframe/src/icon_data.rs +++ b/crates/eframe/src/icon_data.rs @@ -54,7 +54,7 @@ impl IconDataExt for IconData { image .write_to( &mut std::io::Cursor::new(&mut png_bytes), - image::ImageOutputFormat::Png, + image::ImageFormat::Png, ) .map_err(|err| err.to_string())?; Ok(png_bytes) diff --git a/crates/eframe/src/native/app_icon.rs b/crates/eframe/src/native/app_icon.rs index 90100298680..840bf367b27 100644 --- a/crates/eframe/src/native/app_icon.rs +++ b/crates/eframe/src/native/app_icon.rs @@ -118,7 +118,7 @@ fn set_app_icon_windows(icon_data: &IconData) -> AppIconStatus { if image_scaled .write_to( &mut std::io::Cursor::new(&mut image_scaled_bytes), - image::ImageOutputFormat::Png, + image::ImageFormat::Png, ) .is_err() { diff --git a/crates/egui_demo_app/Cargo.toml b/crates/egui_demo_app/Cargo.toml index 0491f5ff934..5878848ceae 100644 --- a/crates/egui_demo_app/Cargo.toml +++ b/crates/egui_demo_app/Cargo.toml @@ -60,10 +60,7 @@ wgpu = { workspace = true, features = ["webgpu", "webgl"], optional = true } # feature "http": ehttp = { version = "0.5", optional = true } -image = { version = "0.24", optional = true, default-features = false, features = [ - "jpeg", - "png", -] } +image = { workspace = true, optional = true, features = ["jpeg", "png"] } poll-promise = { version = "0.3", optional = true, default-features = false } # feature "persistence": diff --git a/crates/egui_extras/Cargo.toml b/crates/egui_extras/Cargo.toml index 372f754cc52..169e94c8b6c 100644 --- a/crates/egui_extras/Cargo.toml +++ b/crates/egui_extras/Cargo.toml @@ -45,8 +45,7 @@ http = ["dep:ehttp"] ## ## You also need to ALSO opt-in to the image formats you want to support, like so: ## ```toml -## image = { version = "0.24", features = ["jpeg", "png"] } # Add the types you want support for - +## image = { version = "0.25", features = ["jpeg", "png"] } # Add the types you want support for ## ``` image = ["dep:image"] @@ -82,7 +81,7 @@ chrono = { version = "0.4", optional = true, default-features = false, features ## Enable this when generating docs. document-features = { workspace = true, optional = true } -image = { version = "0.24", optional = true, default-features = false } +image = { workspace = true, optional = true } # file feature mime_guess2 = { version = "2", optional = true, default-features = false } diff --git a/crates/egui_extras/README.md b/crates/egui_extras/README.md index 0ccb1de2b1e..4e5e96dce63 100644 --- a/crates/egui_extras/README.md +++ b/crates/egui_extras/README.md @@ -13,7 +13,7 @@ One thing `egui_extras` is commonly used for is to install image loaders for `eg ```toml egui_extras = { version = "*", features = ["all_loaders"] } -image = { version = "0.24", features = ["jpeg", "png"] } # Add the types you want support for +image = { version = "0.25", features = ["jpeg", "png"] } # Add the types you want support for ``` ```rs diff --git a/crates/egui_extras/src/image.rs b/crates/egui_extras/src/image.rs index a0b042e26ae..f6301aec823 100644 --- a/crates/egui_extras/src/image.rs +++ b/crates/egui_extras/src/image.rs @@ -43,7 +43,7 @@ impl RetainedImage { /// `image_bytes` should be the raw contents of an image file (`.png`, `.jpg`, …). /// /// Requires the "image" feature. You must also opt-in to the image formats you need - /// with e.g. `image = { version = "0.24", features = ["jpeg", "png"] }`. + /// with e.g. `image = { version = "0.25", features = ["jpeg", "png"] }`. /// /// # Errors /// On invalid image or unsupported image format. @@ -195,7 +195,7 @@ use egui::ColorImage; /// Load a (non-svg) image. /// /// Requires the "image" feature. You must also opt-in to the image formats you need -/// with e.g. `image = { version = "0.24", features = ["jpeg", "png"] }`. +/// with e.g. `image = { version = "0.25", features = ["jpeg", "png"] }`. /// /// # Errors /// On invalid image or unsupported image format. diff --git a/crates/egui_extras/src/loaders.rs b/crates/egui_extras/src/loaders.rs index 05df9bc8eef..d66ea483071 100644 --- a/crates/egui_extras/src/loaders.rs +++ b/crates/egui_extras/src/loaders.rs @@ -20,7 +20,7 @@ /// /// ```toml,ignore /// egui_extras = { version = "*", features = ["all_loaders"] } -/// image = { version = "0.24", features = ["jpeg", "png"] } # Add the types you want support for +/// image = { version = "0.25", features = ["jpeg", "png"] } # Add the types you want support for /// ``` /// /// ⚠ You have to configure both the supported loaders in `egui_extras` _and_ the supported image formats diff --git a/examples/images/Cargo.toml b/examples/images/Cargo.toml index 092535c9125..57d552e3be4 100644 --- a/examples/images/Cargo.toml +++ b/examples/images/Cargo.toml @@ -21,7 +21,4 @@ env_logger = { version = "0.10", default-features = false, features = [ "auto-color", "humantime", ] } -image = { version = "0.24", default-features = false, features = [ - "jpeg", - "png", -] } +image = { workspace = true, features = ["jpeg", "png"] } diff --git a/examples/save_plot/Cargo.toml b/examples/save_plot/Cargo.toml index c4c287c001d..d20c927b058 100644 --- a/examples/save_plot/Cargo.toml +++ b/examples/save_plot/Cargo.toml @@ -16,7 +16,7 @@ eframe = { workspace = true, features = [ "__screenshot", # __screenshot is so we can dump a screenshot using EFRAME_SCREENSHOT_TO ] } egui_plot.workspace = true -image = { version = "0.24", default-features = false, features = ["png"] } +image = { workspace = true, features = ["png"] } rfd = "0.13.0" env_logger = { version = "0.10", default-features = false, features = [ "auto-color", diff --git a/examples/screenshot/Cargo.toml b/examples/screenshot/Cargo.toml index aba066669c9..84399e4bc24 100644 --- a/examples/screenshot/Cargo.toml +++ b/examples/screenshot/Cargo.toml @@ -24,4 +24,4 @@ env_logger = { version = "0.10", default-features = false, features = [ "auto-color", "humantime", ] } -image = { version = "0.24", default-features = false, features = ["png"] } +image = { workspace = true, features = ["png"] }