fix: cot button can not operate
This commit is contained in:
@@ -0,0 +1,45 @@
|
|||||||
|
const extractImageColors = (base64Image: string) => {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
const img = new Image();
|
||||||
|
img.src = base64Image;
|
||||||
|
|
||||||
|
img.onload = function () {
|
||||||
|
const canvas = document.createElement('canvas');
|
||||||
|
const ctx = canvas.getContext('2d')!;
|
||||||
|
|
||||||
|
canvas.width = img.width;
|
||||||
|
canvas.height = img.height;
|
||||||
|
ctx.drawImage(img, 0, 0);
|
||||||
|
|
||||||
|
const imageData = ctx.getImageData(0, 0, img.width, img.height);
|
||||||
|
const pixels = imageData.data;
|
||||||
|
|
||||||
|
let blackPixels = [];
|
||||||
|
let whitePixels = [];
|
||||||
|
|
||||||
|
for (let i = 0; i < pixels.length; i += 4) {
|
||||||
|
let r = pixels[i],
|
||||||
|
g = pixels[i + 1],
|
||||||
|
b = pixels[i + 2];
|
||||||
|
let x = (i / 4) % img.width;
|
||||||
|
let y = Math.floor(i / 4 / img.width);
|
||||||
|
|
||||||
|
if (r === 0 && g === 0 && b === 0) {
|
||||||
|
blackPixels.push({ x, y });
|
||||||
|
} else if (r === 255 && g === 255 && b === 255) {
|
||||||
|
whitePixels.push({ x, y });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
URL.revokeObjectURL(img.src);
|
||||||
|
|
||||||
|
resolve({ blackPixels, whitePixels });
|
||||||
|
};
|
||||||
|
|
||||||
|
img.onerror = function () {
|
||||||
|
reject(new Error('Image loading failed'));
|
||||||
|
};
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
export default extractImageColors;
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
.markdown-viewer {
|
.markdown-viewer {
|
||||||
font-family: var(--font-family) !important;
|
font-family: var(--font-family) !important;
|
||||||
word-break: break-word;
|
word-break: break-word;
|
||||||
|
font-size: var(--font-size-base);
|
||||||
|
|
||||||
.hr {
|
.hr {
|
||||||
border: none;
|
border: none;
|
||||||
@@ -28,12 +29,28 @@
|
|||||||
h2,
|
h2,
|
||||||
h3,
|
h3,
|
||||||
h4 {
|
h4 {
|
||||||
font-weight: 700;
|
|
||||||
font-weight: var(--font-weight-bold);
|
font-weight: var(--font-weight-bold);
|
||||||
font-size: var(--font-size-small);
|
|
||||||
margin-top: 1em;
|
margin-top: 1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
font-size: 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
h3 {
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
h4,
|
||||||
|
h5,
|
||||||
|
h6 {
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
.hj-wrapper {
|
.hj-wrapper {
|
||||||
margin-top: 16px;
|
margin-top: 16px;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,14 +2,6 @@
|
|||||||
margin-bottom: 24px;
|
margin-bottom: 24px;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
.markdown-viewer {
|
|
||||||
h4 {
|
|
||||||
margin-top: 10px;
|
|
||||||
margin-bottom: 10px;
|
|
||||||
font-size: var(--font-size-middle);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&-role {
|
&-role {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@@ -26,6 +18,7 @@
|
|||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0;
|
top: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
|
z-index: 101;
|
||||||
}
|
}
|
||||||
|
|
||||||
.role {
|
.role {
|
||||||
|
|||||||
Reference in New Issue
Block a user