Skip to content

Commit 658995e

Browse files
author
Markus Ineichen
committed
Remove image feature from pilatus-engineering, whoes features were moved to imbuf directly
1 parent 05a6554 commit 658995e

File tree

7 files changed

+11
-78
lines changed

7 files changed

+11
-78
lines changed

pilatus-emulation-camera-rt/Cargo.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ image.workspace = true
1212
minfac.workspace = true
1313
pilatus = { workspace = true, features = ["minfac"] }
1414
pilatus-emulation-camera = { workspace = true, features = ["unstable"] }
15-
pilatus-engineering = { path = "../pilatus-engineering", features = ["image"] }
15+
pilatus-engineering = { path = "../pilatus-engineering" }
1616
pilatus-axum.workspace = true
1717
serde.workspace = true
1818
tokio = { workspace = true, features = ["sync"] }
@@ -25,12 +25,12 @@ serde_json = { version = "1", optional = true }
2525
pilatus-axum-rt = { workspace = true, optional = true }
2626
pilatus-engineering-rt = { workspace = true, optional = true, features = ["axum"] }
2727
pilatus-rt = { workspace = true, features = ["unstable"], optional = true }
28-
reqwest = { version = "0.12", optional = true }
28+
reqwest = { version = "0.13", optional = true }
2929

3030
[dev-dependencies]
3131
tracing-test = { version = "0.2", features = ["no-env-filter"] }
3232
tokio = { workspace = true, features = ["sync", "macros"]}
33-
imbuf.workspace = true
33+
imbuf = { workspace = true, features = ["image_0_25"] }
3434

3535
[features]
3636
integration = [

pilatus-emulation-camera-rt/src/publish_frame.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ use pilatus::{
1111
RelativeDirectoryPath, TransactionError,
1212
device::{ActorMessage, HandlerResult, Step2, WeakUntypedActorMessageSender},
1313
};
14-
use pilatus_engineering::image::{DynamicImage as PilatusDynamicImage, FromImage, ImageWithMeta};
14+
use pilatus_engineering::image::{DynamicImage as PilatusDynamicImage, ImageWithMeta};
1515
use tracing::{debug, warn};
1616

1717
use super::DeviceState;
@@ -172,7 +172,7 @@ impl PublisherState {
172172
let img =
173173
tokio::task::spawn_blocking(move || image::load_from_memory(&image_data)).await??;
174174

175-
let pilatus_image = PilatusDynamicImage::from_image(img)?;
175+
let pilatus_image = PilatusDynamicImage::try_from(img)?;
176176
debug!(
177177
"Publish '{:?}': {:?}",
178178
&path.0.file_name().and_then(|x| x.to_str()).unwrap_or(""),

pilatus-emulation-camera-rt/src/upload_image.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ use pilatus_axum::{
77
DeviceJsonError, ServiceCollectionExtensions,
88
extract::{InjectRegistered, Path, Query},
99
};
10-
use pilatus_engineering::image::{FromImage, ImageEncoderTrait};
10+
use pilatus_engineering::image::ImageEncoderTrait;
1111

1212
use crate::DeviceState;
1313

@@ -58,7 +58,7 @@ async fn upload_image_to_collection(
5858
.await
5959
.map_err(ActorError::custom)?;
6060

61-
let image = pilatus_engineering::image::DynamicImage::from_image(decode_image)
61+
let image = pilatus_engineering::image::DynamicImage::try_from(decode_image)
6262
.map_err(ActorError::custom)?;
6363

6464
Ok(actor_system

pilatus-emulation-camera/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,6 @@ mod tests {
8989
let params = Params::default();
9090
let serialized = serde_json::to_string(&params).unwrap();
9191
println!("serialized = {}", serialized);
92-
let deserialized: ParamsImpex = serde_json::from_str(&serialized).unwrap();
92+
let _deserialized: ParamsImpex = serde_json::from_str(&serialized).unwrap();
9393
}
9494
}

pilatus-engineering-rt/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@ bytes.workspace = true
1010
chrono = { workspace = true, features = ["serde"], optional = true }
1111
futures.workspace = true
1212
image.workspace = true # Must remain an internal dependency
13-
imbuf.workspace = true
13+
imbuf = { workspace = true, features = ["image_0_25"] }
1414
minfac.workspace = true
1515
pilatus = { workspace = true, features = ["minfac"] }
1616
pilatus-axum = { workspace = true, optional = true }
17-
pilatus-engineering = { workspace = true }
17+
pilatus-engineering.workspace = true
1818
resvg = { version = "0.45.0" }
1919
thiserror.workspace = true
2020
tracing.workspace = true

pilatus-engineering/Cargo.toml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ anyhow.workspace = true
1010
approx = "0.5"
1111
bytes.workspace = true
1212
futures.workspace = true
13-
image = { workspace = true, optional = true }
1413
imbuf.workspace = true
1514
jpeg-encoder = { version = "0.6", features = ["simd"], optional = true }
1615
nalgebra = { version = "0.34", optional = true }
@@ -28,12 +27,12 @@ tracing.workspace = true
2827

2928
tokio = { workspace = true, features = ["sync"], optional = true }
3029
tokio-stream = { version = "0.1", features = ["fs", "sync"], optional = true }
30+
3131
[dev-dependencies]
3232
nalgebra = "0.34"
3333
serde_json.workspace = true
3434

3535

3636
[features]
3737
axum = ["dep:pilatus-axum", "dep:jpeg-encoder", "dep:serde_json"]
38-
image = ["dep:image"]
3938
tokio = ["dep:tokio", "tokio-stream"]

pilatus-engineering/src/image.rs

Lines changed: 0 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -148,57 +148,6 @@ pub enum EncodeError {
148148
#[error("Unsupported format {1}")]
149149
pub struct UnsupportedImageError<TIn>(TIn, Cow<'static, str>);
150150

151-
#[cfg(feature = "image")]
152-
pub trait FromImage: Sized {
153-
fn from_image(value: image::DynamicImage) -> Result<Self, std::num::TryFromIntError>;
154-
}
155-
156-
#[cfg(feature = "image")]
157-
impl FromImage for DynamicImage {
158-
fn from_image(value: image::DynamicImage) -> Result<Self, std::num::TryFromIntError> {
159-
use image::GenericImageView;
160-
161-
let (width, height) = value.dimensions();
162-
let (width, height) = (width.try_into()?, height.try_into()?);
163-
Ok(match value {
164-
image::DynamicImage::ImageLuma8(x) => {
165-
Image::<u8, 1>::new_vec(x.into_vec(), width, height).into()
166-
}
167-
image::DynamicImage::ImageLuma16(x) => {
168-
Image::<u16, 1>::new_vec(x.into_vec(), width, height).into()
169-
}
170-
image::DynamicImage::ImageLumaA8(x) => {
171-
Image::<[u8; 2], 1>::new_vec_flat(x.into_vec(), width, height).into()
172-
}
173-
image::DynamicImage::ImageLumaA16(x) => {
174-
Image::<[u16; 2], 1>::new_vec_flat(x.into_vec(), width, height).into()
175-
}
176-
image::DynamicImage::ImageRgb8(x) => {
177-
Image::<[u8; 3], 1>::new_vec_flat(x.into_vec(), width, height).into()
178-
}
179-
image::DynamicImage::ImageRgb16(x) => {
180-
Image::<[u16; 3], 1>::new_vec_flat(x.into_vec(), width, height).into()
181-
}
182-
image::DynamicImage::ImageRgb32F(x) => {
183-
Image::<[f32; 3], 1>::new_vec_flat(x.into_vec(), width, height).into()
184-
}
185-
image::DynamicImage::ImageRgba8(x) => {
186-
Image::<[u8; 4], 1>::new_vec_flat(x.into_vec(), width, height).into()
187-
}
188-
image::DynamicImage::ImageRgba16(x) => {
189-
Image::<[u16; 4], 1>::new_vec_flat(x.into_vec(), width, height).into()
190-
}
191-
image::DynamicImage::ImageRgba32F(x) => {
192-
Image::<[f32; 4], 1>::new_vec_flat(x.into_vec(), width, height).into()
193-
}
194-
_ => {
195-
tracing::error!("Unexhaustive Enum was extended... returning wrong error");
196-
return Err(NonZeroU32::try_from(0).unwrap_err());
197-
}
198-
})
199-
}
200-
}
201-
202151
#[cfg(test)]
203152
mod tests {
204153
use super::*;
@@ -213,19 +162,4 @@ mod tests {
213162
vec!(1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3)
214163
);
215164
}
216-
217-
#[test]
218-
#[cfg(feature = "image")]
219-
fn create_image_from_zero_width_fails() {
220-
let image: ::image::ImageBuffer<image::Luma<u8>, Vec<u8>> =
221-
image::ImageBuffer::from_raw(0, 1, vec![]).unwrap();
222-
DynamicImage::from_image(image.into()).unwrap_err();
223-
}
224-
#[test]
225-
#[cfg(feature = "image")]
226-
fn create_image_from_zero_height_fails() {
227-
let image: ::image::ImageBuffer<image::Luma<u8>, Vec<u8>> =
228-
image::ImageBuffer::from_raw(1, 0, vec![]).unwrap();
229-
DynamicImage::from_image(image.into()).unwrap_err();
230-
}
231165
}

0 commit comments

Comments
 (0)