From: MegaBrutal Date: Sat, 24 Dec 2022 20:45:00 +0000 (+0100) Subject: Implement /pgen/4 X-Git-Url: http://git.megabrutal.com/?p=litoprism.git;a=commitdiff_plain;h=b91275cfc6266d82debf0eeb54abe44e6363c261 Implement /pgen/4 --- diff --git a/src/main.rs b/src/main.rs index db66481..460364b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -428,6 +428,28 @@ async fn img_pgen3(req: HttpRequest, path: web::Path, canvas2: web::Data, + canvas1: web::Data>>) -> Result +{ + let (dim_x, dim_y, scale, wave_offset_x, wave_offset_y, amplitude, freq_base, run) = path.into_inner(); + let freq_base = freq_base / 1000.0; + let wave_color = extract_color!(req, 11)?; + let data = extract_data!(req, 12); + let img: RgbImage = ({ + let canvas_option = &mut *canvas1.lock().unwrap(); + Ok(apply_to_canvas( + |mut canvas, signal| { + canvas.img = sine_encode(canvas.img, (wave_offset_x, wave_offset_y), amplitude, freq_base, run, wave_color, signal)?; + Ok(canvas) + }, + &mut canvas_option.0, Some((dim_x, dim_y)), data)?.img.clone()) + } as Result)?; + let cursor = image_to_cursor(img, scale)?; + Ok(response_image!(cursor)) +} + #[get("/pdrop/{canvas_id}")] async fn pdrop(canvas_id: web::Path, canvas0: web::Data>>, @@ -471,6 +493,7 @@ async fn main() -> std::io::Result<()> { .service(img_pgen1) .service(img_pgen2) .service(img_pgen3) + .service(img_pgen4) .service(pdrop) .app_data(web::Data::new(canvas0.clone())) .app_data(web::Data::new(canvas1.clone()))