- bump ome-metadata dependency
- make Reader::new error instead of panic if file cannot be read
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "ndbioimage"
|
name = "ndbioimage"
|
||||||
version = "2026.1.0"
|
version = "2026.1.1"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
rust-version = "1.85.1"
|
rust-version = "1.85.1"
|
||||||
authors = ["Wim Pomp <w.pomp@nki.nl>"]
|
authors = ["Wim Pomp <w.pomp@nki.nl>"]
|
||||||
@@ -36,7 +36,7 @@ serde_json = { version = "1", optional = true }
|
|||||||
serde_with = "3"
|
serde_with = "3"
|
||||||
tiffwrite = { version = "2025.12.0", optional = true}
|
tiffwrite = { version = "2025.12.0", optional = true}
|
||||||
thread_local = "1"
|
thread_local = "1"
|
||||||
ome-metadata = "0.3"
|
ome-metadata = "0.3.2"
|
||||||
lazy_static = "1"
|
lazy_static = "1"
|
||||||
thiserror = "2"
|
thiserror = "2"
|
||||||
|
|
||||||
|
|||||||
@@ -269,15 +269,7 @@ impl Deref for Reader {
|
|||||||
type Target = ImageReader;
|
type Target = ImageReader;
|
||||||
|
|
||||||
fn deref(&self) -> &Self::Target {
|
fn deref(&self) -> &Self::Target {
|
||||||
self.image_reader.get_or(|| {
|
self.get_reader().unwrap()
|
||||||
let reader = ImageReader::new().unwrap();
|
|
||||||
let meta_data_tools = MetadataTools::new().unwrap();
|
|
||||||
let ome_meta = meta_data_tools.create_ome_xml_metadata().unwrap();
|
|
||||||
reader.set_metadata_store(ome_meta).unwrap();
|
|
||||||
reader.set_id(self.path.to_str().unwrap()).unwrap();
|
|
||||||
reader.set_series(self.series as i32).unwrap();
|
|
||||||
reader
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -322,6 +314,7 @@ impl Reader {
|
|||||||
pixel_type: PixelType::I8,
|
pixel_type: PixelType::I8,
|
||||||
little_endian: false,
|
little_endian: false,
|
||||||
};
|
};
|
||||||
|
reader.set_reader()?;
|
||||||
reader.size_x = reader.get_size_x()? as usize;
|
reader.size_x = reader.get_size_x()? as usize;
|
||||||
reader.size_y = reader.get_size_y()? as usize;
|
reader.size_y = reader.get_size_y()? as usize;
|
||||||
reader.size_c = reader.get_size_c()? as usize;
|
reader.size_c = reader.get_size_c()? as usize;
|
||||||
@@ -332,6 +325,22 @@ impl Reader {
|
|||||||
Ok(reader)
|
Ok(reader)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn get_reader(&self) -> Result<&ImageReader, Error> {
|
||||||
|
self.image_reader.get_or_try(|| {
|
||||||
|
let reader = ImageReader::new()?;
|
||||||
|
let meta_data_tools = MetadataTools::new()?;
|
||||||
|
let ome_meta = meta_data_tools.create_ome_xml_metadata()?;
|
||||||
|
reader.set_metadata_store(ome_meta)?;
|
||||||
|
reader.set_id(self.path.to_str().ok_or(Error::InvalidFileName)?)?;
|
||||||
|
reader.set_series(self.series as i32)?;
|
||||||
|
Ok(reader)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn set_reader(&self) -> Result<(), Error> {
|
||||||
|
self.get_reader().map(|_| ())
|
||||||
|
}
|
||||||
|
|
||||||
/// Get ome metadata as ome structure
|
/// Get ome metadata as ome structure
|
||||||
pub fn get_ome(&self) -> Result<Ome, Error> {
|
pub fn get_ome(&self) -> Result<Ome, Error> {
|
||||||
let mut ome = self.ome_xml()?.parse::<Ome>()?;
|
let mut ome = self.ome_xml()?.parse::<Ome>()?;
|
||||||
@@ -473,6 +482,8 @@ impl Reader {
|
|||||||
|
|
||||||
impl Drop for Reader {
|
impl Drop for Reader {
|
||||||
fn drop(&mut self) {
|
fn drop(&mut self) {
|
||||||
let _ = self.close();
|
if let Ok(reader) = self.get_reader() {
|
||||||
|
reader.close().unwrap();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user