From 469ea1773b13ba0b25bc4121047faf4cc0d3b108 Mon Sep 17 00:00:00 2001 From: Mimoja Date: Thu, 2 Oct 2025 14:08:12 +0200 Subject: [PATCH 1/2] label: add a helper function to check if an area of the label is empty Signed-off-by: Mimoja --- src/js/labels.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/js/labels.js b/src/js/labels.js index 8d7068c..eb1d328 100644 --- a/src/js/labels.js +++ b/src/js/labels.js @@ -29,6 +29,16 @@ export default function (labelType) { }; } +function isCanvasEmpty(ctx, x, y, width, height) { + const imgData = ctx.getImageData(x, y, width, height); + for (let i = 0; i < imgData.data.length; i += 4) { + if (imgData.data[i]!=0xFF || imgData.data[i+1]!=0xFF || imgData.data[i+2]!=0xFF) { + return false; // Found a non-transparent pixel + } + } + return true; // All pixels are transparent +} + const template = { file: { type: 'pdf', From de59cfd4ec41cbe0e89a6b9e8ddebe7bd3ef40bb Mon Sep 17 00:00:00 2001 From: Mimoja Date: Thu, 2 Oct 2025 14:09:00 +0200 Subject: [PATCH 2/2] label/dhl: add positional support for the changed BAHNTRANSPORT icon Signed-off-by: Mimoja --- src/js/labels.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/js/labels.js b/src/js/labels.js index eb1d328..4583380 100644 --- a/src/js/labels.js +++ b/src/js/labels.js @@ -81,6 +81,13 @@ const dhlPrivat = { 2802, 679, 234, 154, 666, 465, 152, 100); + // We didnt render any bahntransport label yet, lets try the second common position + if (isCanvasEmpty(ctx, 666, 465, 152, 100)) { + ctx.drawImage(image, // Bahntransport v2 + 2763, 540, 250, 154, + 666, 465, 152, 100); + } + ctx.drawImage(image, // Sendungsdaten 1964, 933, 1124, 152, 0, 576, 890, 120);