jsで読み込んだ image fileをrust(wasm)をreadする方法
js からwasmの関数を呼び出す際に画像データを引数に付ける方法
code:sample.js
document.getElementById('file_input').onchange = function() {
let files = document.getElementById('file_input').files;
console.log(files);
var fileReader = new FileReader();
fileReader.onload = function () {
console.log( fileReader.result ) ; // ArrayBuffer
let data = new Uint8Array(fileReader.result)
wasm.processImage(data);
}
// 読み込みを実行
fileReader.readAsArrayBuffer(files0); }
code:sample_rust.rs
pub fn process_image(data: Vec<u8>) {
let result = image::load_from_memory_with_format(&data, image::ImageFormat::PNG);
...
}
上記のように画像データをUint8Arrayでキャストしてあげて、wasm関数の引数に入れればできる