+#[get("/pgen/5/{dim_x}/{dim_y}/{scale}/{offset_x}/{offset_y}/{run}/{color}/{data}")]
+async fn img_pgen5(req: HttpRequest, path: web::Path<(u32, u32, u32, u32, u32, u32)>,
+ canvas1: web::Data<Arc<Mutex<Canvas1>>>) -> Result<impl Responder>
+{
+ let (dim_x, dim_y, scale, offset_x, offset_y, run) = path.into_inner();
+ let color = extract_color!(req, 9)?;
+ let data = extract_data!(req, 10);
+ let img: RgbImage = ({
+ let canvas_option = &mut *canvas1.lock().unwrap();
+ Ok(apply_to_canvas(
+ |mut canvas, data| {
+ canvas.img = offset_encode(canvas.img, (offset_x, offset_y), run, color, data)?;
+ Ok(canvas)
+ },
+ &mut canvas_option.0, Some((dim_x, dim_y)), data)?.img.clone())
+ } as Result<RgbImage, CanvasError>)?;
+ let cursor = image_to_cursor(img, scale)?;
+ Ok(response_image!(cursor))
+}
+