nicehero
commited on
Commit
·
f32379a
1
Parent(s):
7a6991d
index.html
Browse files- static/index.html +49 -22
static/index.html
CHANGED
@@ -169,6 +169,7 @@ window.onerror = function (message, source, lineno, colno, error) {
|
|
169 |
};
|
170 |
console.error("JavaScript Error:", errorData);
|
171 |
// 使用 Fetch API 上传错误信息
|
|
|
172 |
fetch('/log-error', {
|
173 |
method: 'POST',
|
174 |
headers: {
|
@@ -176,6 +177,7 @@ window.onerror = function (message, source, lineno, colno, error) {
|
|
176 |
},
|
177 |
body: JSON.stringify(errorData)
|
178 |
});
|
|
|
179 |
};
|
180 |
window.onload = function() {
|
181 |
var canvas = document.getElementById('canvas');
|
@@ -622,6 +624,28 @@ window.onload = function() {
|
|
622 |
return new Blob([byteArray], { type: mime });
|
623 |
}
|
624 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
625 |
document.getElementById('saveToClipboard').addEventListener('click',async function() {
|
626 |
var data = maskData.data;
|
627 |
var tempCanvas = document.createElement('canvas');
|
@@ -637,13 +661,17 @@ window.onload = function() {
|
|
637 |
tempCanvas.height = canvas.height;
|
638 |
ctx.putImageData(maskData, 0, 0);
|
639 |
}
|
|
|
|
|
|
|
|
|
|
|
640 |
//await navigator.clipboard.writeText(tempCanvas.toDataURL("image/jpeg", 0.9));
|
641 |
const response = await fetch(tempCanvas.toDataURL("image/png"));
|
642 |
const blob = await response.blob();
|
643 |
-
|
644 |
-
const
|
645 |
-
|
646 |
-
const base64String = img.src.split(',')[1];
|
647 |
const response2 = await fetch(
|
648 |
'/uploadVPMask/' + getQueryParameter('id'),{
|
649 |
//'https://api.imgur.com/3/image', {
|
@@ -654,23 +682,23 @@ window.onload = function() {
|
|
654 |
},
|
655 |
body: JSON.stringify({ image: base64String }),
|
656 |
});
|
657 |
-
|
658 |
-
|
659 |
-
|
660 |
-
|
661 |
-
|
662 |
-
|
663 |
-
|
664 |
-
|
665 |
-
|
666 |
-
|
667 |
-
|
668 |
-
|
669 |
-
|
670 |
-
|
671 |
-
|
672 |
-
|
673 |
-
|
674 |
});
|
675 |
|
676 |
// 保存蒙版
|
@@ -756,7 +784,6 @@ window.onload = function() {
|
|
756 |
//setEventListeners();
|
757 |
//const imageUrl = getQueryParameter('imageUrl');
|
758 |
//const imageUrl = 'https://i.imgur.com/' + Telegram.WebApp.initDataUnsafe.user.id + '.jpeg';
|
759 |
-
//const imageUrl = '/getVPImage/' + Telegram.WebApp.initDataUnsafe.user.id;
|
760 |
const imageUrl = '/getVPImage/' + getQueryParameter('id');
|
761 |
if (imageUrl) {
|
762 |
loadImageFromUrl(imageUrl);
|
|
|
169 |
};
|
170 |
console.error("JavaScript Error:", errorData);
|
171 |
// 使用 Fetch API 上传错误信息
|
172 |
+
/*
|
173 |
fetch('/log-error', {
|
174 |
method: 'POST',
|
175 |
headers: {
|
|
|
177 |
},
|
178 |
body: JSON.stringify(errorData)
|
179 |
});
|
180 |
+
*/
|
181 |
};
|
182 |
window.onload = function() {
|
183 |
var canvas = document.getElementById('canvas');
|
|
|
624 |
return new Blob([byteArray], { type: mime });
|
625 |
}
|
626 |
|
627 |
+
function calculateWhiteRatio(canvas) {
|
628 |
+
const ctx = canvas.getContext('2d');
|
629 |
+
const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
|
630 |
+
const data = imageData.data;
|
631 |
+
let whiteCount = 0;
|
632 |
+
const totalPixels = canvas.width * canvas.height;
|
633 |
+
|
634 |
+
for (let i = 0; i < data.length; i += 4) {
|
635 |
+
const r = data[i];
|
636 |
+
const g = data[i + 1];
|
637 |
+
const b = data[i + 2];
|
638 |
+
|
639 |
+
// 判断是否为白色(RGB都为255)
|
640 |
+
if (r === 255 && g === 255 && b === 255) {
|
641 |
+
whiteCount++;
|
642 |
+
}
|
643 |
+
}
|
644 |
+
|
645 |
+
const whiteRatio = whiteCount / totalPixels;
|
646 |
+
return whiteRatio * 100; // 返回百分比
|
647 |
+
}
|
648 |
+
|
649 |
document.getElementById('saveToClipboard').addEventListener('click',async function() {
|
650 |
var data = maskData.data;
|
651 |
var tempCanvas = document.createElement('canvas');
|
|
|
661 |
tempCanvas.height = canvas.height;
|
662 |
ctx.putImageData(maskData, 0, 0);
|
663 |
}
|
664 |
+
const r = calculateWhiteRatio(tempCanvas);
|
665 |
+
if (r < 1.0) {
|
666 |
+
alert("涂的太少了!!!");
|
667 |
+
return;
|
668 |
+
}
|
669 |
//await navigator.clipboard.writeText(tempCanvas.toDataURL("image/jpeg", 0.9));
|
670 |
const response = await fetch(tempCanvas.toDataURL("image/png"));
|
671 |
const blob = await response.blob();
|
672 |
+
//const img = document.getElementById('outputImg');
|
673 |
+
const src = tempCanvas.toDataURL("image/jpeg");
|
674 |
+
const base64String = src.split(',')[1];
|
|
|
675 |
const response2 = await fetch(
|
676 |
'/uploadVPMask/' + getQueryParameter('id'),{
|
677 |
//'https://api.imgur.com/3/image', {
|
|
|
682 |
},
|
683 |
body: JSON.stringify({ image: base64String }),
|
684 |
});
|
685 |
+
if (response2.ok) {
|
686 |
+
const myImg1 = document.getElementById('myImg1');
|
687 |
+
const firstChild = myImg1.firstChild;
|
688 |
+
let sendback = document.createElement('a');
|
689 |
+
sendback.href = 'https://t.me/ainudevideo_bot?start=mask_ok';// + r.data.link;
|
690 |
+
sendback.textContent = 'sendback';
|
691 |
+
sendback.click();
|
692 |
+
sendback.innerHTML = "如果点击按钮没有反应,请点这个链接 If there is no response when clicking the button, please click on this link";
|
693 |
+
myImg1.insertBefore(sendback, firstChild);
|
694 |
+
//Telegram.WebApp.close();
|
695 |
+
setTimeout(function() {
|
696 |
+
window.close();
|
697 |
+
}, 2000);
|
698 |
+
}
|
699 |
+
else {
|
700 |
+
alert("上传失败,请重试");
|
701 |
+
}
|
702 |
});
|
703 |
|
704 |
// 保存蒙版
|
|
|
784 |
//setEventListeners();
|
785 |
//const imageUrl = getQueryParameter('imageUrl');
|
786 |
//const imageUrl = 'https://i.imgur.com/' + Telegram.WebApp.initDataUnsafe.user.id + '.jpeg';
|
|
|
787 |
const imageUrl = '/getVPImage/' + getQueryParameter('id');
|
788 |
if (imageUrl) {
|
789 |
loadImageFromUrl(imageUrl);
|