From 750d5f3dab724085a679734374d11d977cd8defb Mon Sep 17 00:00:00 2001 From: Ulan Degenbaev Date: Thu, 7 Dec 2023 17:49:03 +0100 Subject: [PATCH 1/4] QR code example: add a feature to make the result transparent This adds a "make transparent" option to the UI of the QR code page and the corresponding handling in the backend. There are also minor drive-by fixes in the Cargo.toml and README. --- rust/qrcode/Cargo.toml | 1 + rust/qrcode/README.md | 1 + .../qrcode_backend/assets/logo_transparent.png | Bin 0 -> 94410 bytes .../assets/{logo.png => logo_white.png} | Bin .../src/qrcode_backend/qrcode_backend.did | 1 + rust/qrcode/src/qrcode_backend/src/core.rs | 16 +++++++++++++++- rust/qrcode/src/qrcode_backend/src/lib.rs | 11 +++++++++-- rust/qrcode/src/qrcode_frontend/assets/main.css | 1 + rust/qrcode/src/qrcode_frontend/src/index.html | 9 +++++++++ rust/qrcode/src/qrcode_frontend/src/index.js | 1 + 10 files changed, 38 insertions(+), 3 deletions(-) create mode 100644 rust/qrcode/src/qrcode_backend/assets/logo_transparent.png rename rust/qrcode/src/qrcode_backend/assets/{logo.png => logo_white.png} (100%) diff --git a/rust/qrcode/Cargo.toml b/rust/qrcode/Cargo.toml index 9257276b3..910ce069a 100644 --- a/rust/qrcode/Cargo.toml +++ b/rust/qrcode/Cargo.toml @@ -2,3 +2,4 @@ members = [ "src/qrcode_backend", ] +resolver = "2" diff --git a/rust/qrcode/README.md b/rust/qrcode/README.md index 8272146fb..d3a9a5bec 100644 --- a/rust/qrcode/README.md +++ b/rust/qrcode/README.md @@ -16,6 +16,7 @@ This example requires an installation of: - [x] Make sure your rust version is up-to-date (e.g., run `rustup update`). - [x] Add the `wasm32` target to your rust installation (by running `rustup target add wasm32-unknown-unknown`). - [x] Clone this project to a local directory. +- [x] Install `node.js` dependencies by running `npm install`. ## Running locally diff --git a/rust/qrcode/src/qrcode_backend/assets/logo_transparent.png b/rust/qrcode/src/qrcode_backend/assets/logo_transparent.png new file mode 100644 index 0000000000000000000000000000000000000000..f06decadf52f8d8c25a7a8c2c1e5315d60757918 GIT binary patch literal 94410 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 T#draK;Vmn3J80b>w`2bcg@^kt literal 0 HcmV?d00001 diff --git a/rust/qrcode/src/qrcode_backend/assets/logo.png b/rust/qrcode/src/qrcode_backend/assets/logo_white.png similarity index 100% rename from rust/qrcode/src/qrcode_backend/assets/logo.png rename to rust/qrcode/src/qrcode_backend/assets/logo_white.png diff --git a/rust/qrcode/src/qrcode_backend/qrcode_backend.did b/rust/qrcode/src/qrcode_backend/qrcode_backend.did index bf4105c6f..85d18cb82 100644 --- a/rust/qrcode/src/qrcode_backend/qrcode_backend.did +++ b/rust/qrcode/src/qrcode_backend/qrcode_backend.did @@ -1,6 +1,7 @@ type Options = record { add_logo: bool; add_gradient: bool; + add_transparency: bool; }; type QrError = record { diff --git a/rust/qrcode/src/qrcode_backend/src/core.rs b/rust/qrcode/src/qrcode_backend/src/core.rs index bd12ea0a1..fc843b3b5 100644 --- a/rust/qrcode/src/qrcode_backend/src/core.rs +++ b/rust/qrcode/src/qrcode_backend/src/core.rs @@ -20,6 +20,10 @@ pub(super) fn generate( )?) .into_rgba8(); + if options.add_transparency { + make_transparent(&mut qr); + } + if options.add_logo { add_logo(&mut qr, logo); } @@ -33,6 +37,16 @@ pub(super) fn generate( Ok(result) } +/// Replaces white pixels in the image with transparent pixels. +fn make_transparent(qr: &mut ImageBuffer, Vec>) { + for (_x, _y, pixel) in qr.enumerate_pixels_mut() { + if pixel.0 == [255, 255, 255, 255] { + *pixel = image::Rgba([255, 255, 255, 0]); + } + } +} + + /// Adds the given logo at the center of QR code image. /// It ensures that the logo does not cover more than 10% of the image, which is /// below the QR error threshold. @@ -89,7 +103,7 @@ fn add_gradient(qr: &mut ImageBuffer, Vec>) { // The gradient goes from the center of the image to its sides. let center = (image_size / 2) as u32; for (x, y, pixel) in qr.enumerate_pixels_mut() { - if pixel.0[0] == 0 { + if pixel.0 == [0, 0, 0, 255] { // Use a simple Manhattan distance as an estimate of how far the // pixel is from the center of the image. let distance = x.abs_diff(center) + y.abs_diff(center); diff --git a/rust/qrcode/src/qrcode_backend/src/lib.rs b/rust/qrcode/src/qrcode_backend/src/lib.rs index 525650390..6ae1a4dc7 100644 --- a/rust/qrcode/src/qrcode_backend/src/lib.rs +++ b/rust/qrcode/src/qrcode_backend/src/lib.rs @@ -4,12 +4,14 @@ use std::include_bytes; mod core; const IMAGE_SIZE_IN_PIXELS: usize = 1024; -const LOGO: &[u8] = include_bytes!("../assets/logo.png"); +const LOGO_TRANSPARENT: &[u8] = include_bytes!("../assets/logo_transparent.png"); +const LOGO_WHITE: &[u8] = include_bytes!("../assets/logo_white.png"); #[derive(CandidType, Deserialize)] struct Options { add_logo: bool, add_gradient: bool, + add_transparency: bool, } #[derive(CandidType, Deserialize)] @@ -24,7 +26,12 @@ enum QrResult { } fn qrcode_impl(input: String, options: Options) -> QrResult { - let result = match core::generate(input, options, LOGO, IMAGE_SIZE_IN_PIXELS) { + let logo = if options.add_transparency { + LOGO_TRANSPARENT + } else { + LOGO_WHITE + }; + let result = match core::generate(input, options, logo, IMAGE_SIZE_IN_PIXELS) { Ok(blob) => QrResult::Image(blob), Err(err) => QrResult::Err(QrError { message: err.to_string(), diff --git a/rust/qrcode/src/qrcode_frontend/assets/main.css b/rust/qrcode/src/qrcode_frontend/assets/main.css index 0931d7ab0..f1e2090dd 100644 --- a/rust/qrcode/src/qrcode_frontend/assets/main.css +++ b/rust/qrcode/src/qrcode_frontend/assets/main.css @@ -20,6 +20,7 @@ div { img { max-width: 80vw; border: 1px solid #555; + background-color: #ddd; } .qrcode { diff --git a/rust/qrcode/src/qrcode_frontend/src/index.html b/rust/qrcode/src/qrcode_frontend/src/index.html index 85490e8fe..c05615fd0 100644 --- a/rust/qrcode/src/qrcode_frontend/src/index.html +++ b/rust/qrcode/src/qrcode_frontend/src/index.html @@ -33,6 +33,15 @@

QR code generator

  add gradient +
+ +