Safe wrapper for openjpeg-sys
with Bevy asset support.
```rust use std::fs::File; use std::io::prelude::*; use std::env;
use anyhow::Result;
use image::DynamicImage;
use jpeg2k::*;
fn main() -> Result<()> { let jp2filename = env::args().nth(1) .unwraporelse(|| "test.j2k".tostring()); let savename = env::args().nth(2) .unwraporelse(|| "test.jpg".to_string());
// Load file bytes.
let mut file = File::open(jp2filename)?; let mut buf = Vec::new(); file.readto_end(&mut buf)?;
// Load jpeg 2000 file from bytes.
let jp2image = Image::frombytes(&mut buf)?;
println!("jp2image: width={:?}, height={:?}", jp2image.width(), jp2_image.height());
// Convert to a `image::DynamicImage`
let img: DynamicImage = jp2image.tryinto()?;
// Using `image` crate to save image to another format: png, jpg, etc...
img.save(&savename)?;
println!("Saved to: {}", savename); Ok(()) } ```
```rust use bevy::prelude::*;
use jpeg2k::*;
fn main() { App::build() .add_plugins(DefaultPlugins)
// Load the Jpeg 2000 asset loader plugin.
.add_plugin(Jpeg2KPlugin)
.add_startup_system(setup.system())
.run();
}
fn setup(
assetserver: Res
```