From 54a7e1dae9c80ca9b71b24d1d19484e712e8d26a Mon Sep 17 00:00:00 2001 From: stephan Date: Sat, 11 Jul 2026 18:53:02 -0400 Subject: [PATCH] Add logo path function and enhance logo image creation for QR key chains This commit introduces a new function to define the logo path for QR key chains and enhances the image creation process by adding functionality to load, resize, and center the logo within a specified size. If the logo file is missing, a fallback to a text drawing is implemented. These changes improve the visual presentation of QR codes with logos. --- images/ms1-kc-logo.png | Bin 0 -> 4395 bytes php/inc_fx_kc_qr.php | 52 ++++++++++++++++++++++++++++++++++++++++- 2 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 images/ms1-kc-logo.png diff --git a/images/ms1-kc-logo.png b/images/ms1-kc-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..a2f22bcc938d2967c0287b33cdc1ff746c5c5851 GIT binary patch literal 4395 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