feat: add deno_rust_wasm_qr_decode
This commit is contained in:
19
__wasm/deno_rust_wasm_qr_decode/rs_lib/Cargo.toml
Normal file
19
__wasm/deno_rust_wasm_qr_decode/rs_lib/Cargo.toml
Normal file
@@ -0,0 +1,19 @@
|
||||
[package]
|
||||
name = "rs_lib"
|
||||
version = "0.0.0"
|
||||
edition = "2021"
|
||||
|
||||
[lib]
|
||||
crate_type = ["cdylib"]
|
||||
|
||||
[profile.release]
|
||||
codegen-units = 1
|
||||
incremental = true
|
||||
lto = true
|
||||
opt-level = "z"
|
||||
|
||||
[dependencies]
|
||||
wasm-bindgen = "=0.2.81"
|
||||
bardecoder = "0.3.0"
|
||||
image = "0.23"
|
||||
|
||||
21
__wasm/deno_rust_wasm_qr_decode/rs_lib/src/lib.rs
Normal file
21
__wasm/deno_rust_wasm_qr_decode/rs_lib/src/lib.rs
Normal file
@@ -0,0 +1,21 @@
|
||||
use wasm_bindgen::prelude::*;
|
||||
|
||||
#[wasm_bindgen]
|
||||
pub fn decode_qr(image_bytes: &[u8]) -> String {
|
||||
let img = match image::load_from_memory(image_bytes) {
|
||||
Ok(img) => img,
|
||||
Err(e) => return format!("ERROR:{}", e),
|
||||
};
|
||||
let decoder = bardecoder::default_decoder();
|
||||
let results = decoder.decode(&img);
|
||||
|
||||
let mut r = vec![];
|
||||
for result in results {
|
||||
match result {
|
||||
Ok(s) => r.push(vec![s, "".to_string()]),
|
||||
Err(e) => r.push(vec!["".to_string(), format!("error: {}", e)]),
|
||||
}
|
||||
}
|
||||
format!("{:?}", r)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user