Skip to content

Commit 1a49c33

Browse files
committed
Add warning for images with no transparency
1 parent 7adf394 commit 1a49c33

1 file changed

Lines changed: 29 additions & 0 deletions

File tree

Tools/Centroid Center Calculator.html

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -291,6 +291,17 @@
291291
}
292292

293293
.toggle-text { font-weight: 500; color: white; }
294+
295+
.warning-banner {
296+
background-color: #78350f;
297+
border: 1px solid #f59e0b;
298+
color: #fde68a;
299+
border-radius: 0.5rem;
300+
padding: 0.75rem 1rem;
301+
margin-bottom: 1rem;
302+
font-size: 0.875rem;
303+
text-align: center;
304+
}
294305
</style>
295306
</head>
296307

@@ -311,6 +322,10 @@ <h1 class="title">Visual Centroid Calculator</h1>
311322
<p id="fileName" class="file-name"></p>
312323
</div>
313324

325+
<div id="noAlphaWarning" class="warning-banner hidden">
326+
⚠ This image has no transparency. Results may not be meaningful — this tool is designed for images with transparent regions.
327+
</div>
328+
314329
<!-- Main Content Area -->
315330
<div id="content-area" class="hidden">
316331
<!-- Canvas and Results Wrapper -->
@@ -421,6 +436,8 @@ <h3>No image selected</h3>
421436
const bboxToggle = document.getElementById('bboxToggle');
422437
const crosshairsToggle = document.getElementById('crosshairsToggle');
423438

439+
const noAlphaWarning = document.getElementById('noAlphaWarning');
440+
424441
let currentImageState = { img: null, centroid: null, bboxCenter: null };
425442

426443
imageUpload.addEventListener('change', (event) => handleFile(event.target.files[0]));
@@ -496,6 +513,9 @@ <h3>No image selected</h3>
496513
ctx.clearRect(0, 0, canvas.width, canvas.height);
497514
ctx.drawImage(img, 0, 0);
498515

516+
const hasTransparency = checkForTransparency();
517+
noAlphaWarning.classList.toggle('hidden', hasTransparency);
518+
499519
const centroid = calculateCentroid();
500520
const bboxCenter = { x: img.width / 2, y: img.height / 2 };
501521

@@ -510,6 +530,15 @@ <h3>No image selected</h3>
510530
updateVisualVisibility();
511531
}
512532

533+
function checkForTransparency() {
534+
const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
535+
const data = imageData.data;
536+
for (let i = 3; i < data.length; i += 4) {
537+
if (data[i] < 255) return true;
538+
}
539+
return false;
540+
}
541+
513542
function calculateCentroid() {
514543
const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
515544
const data = imageData.data;

0 commit comments

Comments
 (0)