Skip to content

Commit 7b65463

Browse files
deadlinksbrin
authored andcommitted
Fix: transparent color for inverted display
1 parent f7cde72 commit 7b65463

File tree

1 file changed

+16
-4
lines changed

1 file changed

+16
-4
lines changed

src/utils.ts

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,23 @@ export function packColor565(hexColor: string) {
4747

4848
export function inverImageDataWithAlpha(imgData: ImageData) {
4949
const data = imgData.data;
50+
console.log(data[0], data[1], data[2], data[3]);
5051
for (let i = 0; i < data.length; i += 4) {
51-
data[i] = 255 - data[i];
52-
data[i + 1] = 255 - data[i + 1];
53-
data[i + 2] = 255 - data[i + 2];
54-
data[i + 3] = data[i + 3] > 127 ? 255 : 0;
52+
let [r, g, b, a] = [data[i], data[i + 1], data[i + 2], data[i + 3]];
53+
// if alpha more than 50%
54+
if (r + g + b > 255 / 2 || a < 255 / 2) {
55+
// transparent
56+
a = 0;
57+
r = g = b = 0;
58+
} else {
59+
// white pixels
60+
r = g = b = 255;
61+
a = 255;
62+
}
63+
data[i] = r;
64+
data[i + 1] = g;
65+
data[i + 2] = b;
66+
data[i + 3] = a;
5567
}
5668
return imgData;
5769
}

0 commit comments

Comments
 (0)