export_image/
export_image.rs

1use anyhow::Result;
2use regnumassets::{AssetContent, AssetData, ResourceIndex};
3use std::fs::File;
4use std::io::Write;
5
6fn main() -> Result<()> {
7    let f = File::open("examples/regnum/data5.idx")?;
8    let index = ResourceIndex::read(f).unwrap();
9
10    let image = index.get_by_resource_id(75879).unwrap();
11
12    let f = File::open("examples/regnum/data5.sdb")?;
13    let asset = AssetData::read(&f, &image).unwrap();
14
15    match asset.content {
16        AssetContent::Image { bytes } => {
17            let filename = "out.jpeg";
18            println!("writing file to {}", filename);
19            let mut output = File::create(filename)?;
20            output.write_all(bytes.as_ref())?;
21            output.flush()?;
22        }
23        _ => {
24            println!("couuld not parse image asset")
25        }
26    }
27
28    Ok(())
29}