- 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]
|
||||
name = "ndbioimage"
|
||||
version = "2026.1.0"
|
||||
version = "2026.1.1"
|
||||
edition = "2024"
|
||||
rust-version = "1.85.1"
|
||||
authors = ["Wim Pomp <w.pomp@nki.nl>"]
|
||||
@@ -36,7 +36,7 @@ serde_json = { version = "1", optional = true }
|
||||
serde_with = "3"
|
||||
tiffwrite = { version = "2025.12.0", optional = true}
|
||||
thread_local = "1"
|
||||
ome-metadata = "0.3"
|
||||
ome-metadata = "0.3.2"
|
||||
lazy_static = "1"
|
||||
thiserror = "2"
|
||||
|
||||
|
||||
@@ -269,15 +269,7 @@ impl Deref for Reader {
|
||||
type Target = ImageReader;
|
||||
|
||||
fn deref(&self) -> &Self::Target {
|
||||
self.image_reader.get_or(|| {
|
||||
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
|
||||
})
|
||||
self.get_reader().unwrap()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -322,6 +314,7 @@ impl Reader {
|
||||
pixel_type: PixelType::I8,
|
||||
little_endian: false,
|
||||
};
|
||||
reader.set_reader()?;
|
||||
reader.size_x = reader.get_size_x()? as usize;
|
||||
reader.size_y = reader.get_size_y()? as usize;
|
||||
reader.size_c = reader.get_size_c()? as usize;
|
||||
@@ -332,6 +325,22 @@ impl 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
|
||||
pub fn get_ome(&self) -> Result<Ome, Error> {
|
||||
let mut ome = self.ome_xml()?.parse::<Ome>()?;
|
||||
@@ -473,6 +482,8 @@ impl Reader {
|
||||
|
||||
impl Drop for Reader {
|
||||
fn drop(&mut self) {
|
||||
let _ = self.close();
|
||||
if let Ok(reader) = self.get_reader() {
|
||||
reader.close().unwrap();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user