nicehero commited on
Commit
f32379a
·
1 Parent(s): 7a6991d

index.html

Browse files
Files changed (1) hide show
  1. 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 img = document.getElementById('outputImg');
645
- img.src = tempCanvas.toDataURL("image/jpeg");
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
- /*const r = await response2.json();
658
- img.src = r.data.link;
659
- //Telegram.WebApp.sendData("" + Telegram.WebApp.initDataUnsafe.user.id + ";" + r.data.link);
660
- const script = document.createElement('script');
661
- script.src = "https://telegram.org/js/telegram-widget.js?22";
662
- script.setAttribute('data-telegram-share-url', r.data.link);
663
- script.async = true;
664
- */
665
- const myImg1 = document.getElementById('myImg1');
666
- const firstChild = myImg1.firstChild;
667
- let sendback = document.createElement('a');
668
- sendback.href = 'https://t.me/ainudevideo_bot?start=mask_ok';// + r.data.link;
669
- sendback.textContent = 'sendback';
670
- sendback.click();
671
- sendback.innerHTML = "如果点击按钮没有反应,请点这个链接 If there is no response when clicking the button, please click on this link";
672
- myImg1.insertBefore(sendback, firstChild);
673
- //Telegram.WebApp.close();
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);