jpeg2k-sandboxed
A sandboxed Jpeg2k image decoder. The jpeg2k decoder (uses openjpeg-sys) is compiled to a WASI module
and sandboxed using wasmtime.
Build
The ./src/wasi-decoder.wasm file can be rebuild by running ./rebuild-wasi-decoder.sh.
Requires wasi-sdk.
Example: Convert a Jpeg 2000 image to a png image.
use jpeg2k_sandboxed::*;
fn main() {
let decoder = Jpeg2kSandboxed::new().expect("Failed to load decoder");
let mut file = File::open("./assets/example.j2k").expect("Failed to open file.");
let mut buf = Vec::new();
file.read_to_end(&mut buf).expect("Failed to read file.");
let req = DecodeImageRequest::new(buf);
let image = decoder.decode(&req).expect("Decode failed.");
let img: image::DynamicImage = image.try_into()?;
img.save("out.png")?;
}