@@ -0,0 +1,51 @@
|
||||
use crate::descriptors::DCT;
|
||||
extern crate wasm_bindgen;
|
||||
use wasm_bindgen::prelude::*;
|
||||
use std::io::Cursor;
|
||||
use console_error_panic_hook;
|
||||
|
||||
#[wasm_bindgen]
|
||||
extern {
|
||||
fn alert(s: &str);
|
||||
}
|
||||
|
||||
#[wasm_bindgen]
|
||||
pub fn greet() {
|
||||
alert("Hello world!");
|
||||
}
|
||||
|
||||
#[wasm_bindgen]
|
||||
pub fn dctify(bytes: Vec<u8>) -> Vec<f64> {
|
||||
console_error_panic_hook::set_once();
|
||||
let reader =
|
||||
image::io::Reader
|
||||
::new(Cursor::new(bytes)).with_guessed_format().unwrap();
|
||||
let img: image::DynamicImage =
|
||||
reader
|
||||
.decode()
|
||||
.unwrap();
|
||||
let dct = DCT::new();
|
||||
let values = dct.dct(&img);
|
||||
Vec::from(values)
|
||||
}
|
||||
|
||||
#[wasm_bindgen]
|
||||
pub fn resize(bytes: Vec<u8>) -> Vec<u8> {
|
||||
console_error_panic_hook::set_once();
|
||||
let reader =
|
||||
image::io::Reader
|
||||
::new(Cursor::new(bytes)).with_guessed_format().unwrap();
|
||||
|
||||
let img: image::DynamicImage =
|
||||
reader
|
||||
.decode()
|
||||
.unwrap();
|
||||
|
||||
let resized = img.grayscale().thumbnail_exact(8, 8);
|
||||
let mut buffer: Vec<u8> = Vec::new();
|
||||
let mut writer = std::io::Cursor::new(&mut buffer);
|
||||
|
||||
resized.write_to(&mut writer, image::ImageFormat::Png).unwrap();
|
||||
|
||||
buffer
|
||||
}
|
||||
Reference in New Issue
Block a user