use std::fs::File;
use fits_well::{FitsReader, FitsWriter, Image, ImageData, Scaling};
fn main() -> fits_well::Result<()> {
let path = std::env::temp_dir().join("fits_well_image.fits");
let image = Image {
shape: vec![4, 3],
#[rustfmt::skip]
samples: ImageData::I16(vec![
0, 1, 2, 3,
10, 11, 12, 13,
20, 21, 22, 23,
]),
scaling: Scaling {
bscale: 1.0,
bzero: 0.0,
blank: None,
},
};
let mut writer = FitsWriter::new(File::create(&path)?);
writer.write_image(&image)?;
writer.into_inner().sync_all()?;
println!("wrote {}", path.display());
let mut reader = FitsReader::open(File::open(&path)?)?;
let images = reader.image_indices();
println!("image HDUs: {images:?}");
let raw = reader.read_image(images[0])?;
println!("shape {:?}, {:?}", raw.shape, raw.bitpix);
if let ImageData::I16(pixels) = raw.decode() {
println!("pixels {pixels:?}");
}
println!("physical {:?}", raw.physical());
Ok(())
}