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);
|