seawolf2357 commited on
Commit
329e142
ยท
verified ยท
1 Parent(s): e2406c9

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +43 -19
app.py CHANGED
@@ -654,14 +654,19 @@ var nw=sw*scale,nh=sh*scale;
654
  var ox=(dw-nw)/2,oy=(dh-nh)/2;
655
  ctx.drawImage(el,ox,oy,nw,nh);
656
  }}else if(mode==='blur'){{
657
- // ๋ธ”๋Ÿฌ ํšจ๊ณผ: ์ถ•์†Œ-ํ™•๋Œ€ ๊ธฐ๋ฒ• (filter๋ณด๋‹ค ํ›จ์”ฌ ๋น ๋ฆ„)
658
- // 1. ์•„์ฃผ ์ž‘์€ ์บ”๋ฒ„์Šค์— ๊ทธ๋ ค์„œ ํ”ฝ์…€ํ™”
 
 
 
 
 
659
  var blurCanvas=document.createElement('canvas');
660
- blurCanvas.width=32;blurCanvas.height=32;
661
  var blurCtx=blurCanvas.getContext('2d');
662
- blurCtx.drawImage(el,0,0,32,32);
663
 
664
- // 2. ์ž‘์€ ์ด๋ฏธ์ง€๋ฅผ ํ™•๋Œ€ํ•˜๋ฉด ์ž์—ฐ์Šค๋Ÿฌ์šด ๋ธ”๋Ÿฌ ํšจ๊ณผ
665
  ctx.imageSmoothingEnabled=true;
666
  ctx.imageSmoothingQuality='high';
667
  var scale=Math.max(dw/sw,dh/sh)*1.1;
@@ -669,15 +674,15 @@ var nw=sw*scale,nh=sh*scale;
669
  var ox=(dw-nw)/2,oy=(dh-nh)/2;
670
  ctx.drawImage(blurCanvas,ox,oy,nw,nh);
671
 
672
- // 3. ์–ด๋‘ก๊ฒŒ
673
  ctx.fillStyle='rgba(0,0,0,0.4)';
674
  ctx.fillRect(0,0,dw,dh);
675
 
676
- // 4. ์›๋ณธ (fit)
677
  var fitScale=Math.min(dw/sw,dh/sh);
678
  var fw=sw*fitScale,fh=sh*fitScale;
679
  var fx=(dw-fw)/2,fy=(dh-fh)/2;
680
- ctx.drawImage(el,fx,fy,fw,fh);
681
  }}else{{
682
  // ๋งž์ถค (fit): ์›๋ณธ ๋น„์œจ ์œ ์ง€, ์—ฌ๋ฐฑ
683
  var scale=Math.min(dw/sw,dh/sh);
@@ -755,6 +760,11 @@ var startTime=performance.now();
755
  var fillMode=S.fillMode;
756
 
757
  // ์‹ค์‹œ๊ฐ„ ๊ธฐ๋ฐ˜ ๋ Œ๋”๋ง
 
 
 
 
 
758
  await new Promise(function(resolve){{
759
  var frameCount=0;
760
  var lastVideoEl=null;
@@ -799,7 +809,15 @@ lastVideoEl=el;
799
  try{{
800
  var sw=el.videoWidth||el.naturalWidth||el.width||exportW;
801
  var sh=el.videoHeight||el.naturalHeight||el.height||exportH;
 
 
 
 
 
 
 
802
  drawWithModeExport(offCtx,el,sw,sh,exportW,exportH,fillMode);
 
803
  }}catch(e){{}}
804
  }}
805
  }}else{{
@@ -867,13 +885,23 @@ var scale=Math.max(dw/sw,dh/sh);
867
  var nw=sw*scale,nh=sh*scale;
868
  var ox=(dw-nw)/2,oy=(dh-nh)/2;
869
  ctx.drawImage(el,ox,oy,nw,nh);
870
- }}else if(mode==='blur'){{
871
- // ๋ธ”๋Ÿฌ ํšจ๊ณผ: ์ถ•์†Œ-ํ™•๋Œ€ ๊ธฐ๋ฒ• (filter๋ณด๋‹ค ํ›จ์”ฌ ๋น ๋ฆ„)
 
 
 
 
 
 
 
 
 
872
  var blurCanvas=document.createElement('canvas');
873
- blurCanvas.width=32;blurCanvas.height=32;
874
  var blurCtx=blurCanvas.getContext('2d');
875
- blurCtx.drawImage(el,0,0,32,32);
876
 
 
877
  ctx.imageSmoothingEnabled=true;
878
  ctx.imageSmoothingQuality='high';
879
  var scale=Math.max(dw/sw,dh/sh)*1.1;
@@ -881,19 +909,15 @@ var nw=sw*scale,nh=sh*scale;
881
  var ox=(dw-nw)/2,oy=(dh-nh)/2;
882
  ctx.drawImage(blurCanvas,ox,oy,nw,nh);
883
 
 
884
  ctx.fillStyle='rgba(0,0,0,0.4)';
885
  ctx.fillRect(0,0,dw,dh);
886
 
 
887
  var fitScale=Math.min(dw/sw,dh/sh);
888
  var fw=sw*fitScale,fh=sh*fitScale;
889
  var fx=(dw-fw)/2,fy=(dh-fh)/2;
890
- ctx.drawImage(el,fx,fy,fw,fh);
891
- }}else{{
892
- var scale=Math.min(dw/sw,dh/sh);
893
- var nw=sw*scale,nh=sh*scale;
894
- var ox=(dw-nw)/2,oy=(dh-nh)/2;
895
- ctx.drawImage(el,ox,oy,nw,nh);
896
- }}
897
  }}
898
 
899
  function cancelExport(){{S.cancelled=true;document.getElementById('exportModal').style.display='none'}}
 
654
  var ox=(dw-nw)/2,oy=(dh-nh)/2;
655
  ctx.drawImage(el,ox,oy,nw,nh);
656
  }}else if(mode==='blur'){{
657
+ // ํ”„๋ ˆ์ž„ ๋จผ์ € ์บก์ฒ˜
658
+ var frameCanvas=document.createElement('canvas');
659
+ frameCanvas.width=sw;frameCanvas.height=sh;
660
+ var frameCtx=frameCanvas.getContext('2d');
661
+ frameCtx.drawImage(el,0,0,sw,sh);
662
+
663
+ // ๋ธ”๋Ÿฌ์šฉ ์ž‘์€ ์บ”๋ฒ„์Šค
664
  var blurCanvas=document.createElement('canvas');
665
+ blurCanvas.width=16;blurCanvas.height=16;
666
  var blurCtx=blurCanvas.getContext('2d');
667
+ blurCtx.drawImage(frameCanvas,0,0,16,16);
668
 
669
+ // ๋ฐฐ๊ฒฝ
670
  ctx.imageSmoothingEnabled=true;
671
  ctx.imageSmoothingQuality='high';
672
  var scale=Math.max(dw/sw,dh/sh)*1.1;
 
674
  var ox=(dw-nw)/2,oy=(dh-nh)/2;
675
  ctx.drawImage(blurCanvas,ox,oy,nw,nh);
676
 
677
+ // ์–ด๋‘ก๊ฒŒ
678
  ctx.fillStyle='rgba(0,0,0,0.4)';
679
  ctx.fillRect(0,0,dw,dh);
680
 
681
+ // ์›๋ณธ (์บก์ฒ˜๋œ ํ”„๋ ˆ์ž„)
682
  var fitScale=Math.min(dw/sw,dh/sh);
683
  var fw=sw*fitScale,fh=sh*fitScale;
684
  var fx=(dw-fw)/2,fy=(dh-fh)/2;
685
+ ctx.drawImage(frameCanvas,fx,fy,fw,fh);
686
  }}else{{
687
  // ๋งž์ถค (fit): ์›๋ณธ ๋น„์œจ ์œ ์ง€, ์—ฌ๋ฐฑ
688
  var scale=Math.min(dw/sw,dh/sh);
 
760
  var fillMode=S.fillMode;
761
 
762
  // ์‹ค์‹œ๊ฐ„ ๊ธฐ๋ฐ˜ ๋ Œ๋”๋ง
763
+ // ๋ธ”๋Ÿฌ ๋ชจ๋“œ์šฉ ํ”„๋ ˆ์ž„ ์บก์ฒ˜ ์บ”๋ฒ„์Šค (์žฌ์‚ฌ์šฉ)
764
+ var frameCanvas=document.createElement('canvas');
765
+ frameCanvas.width=1920;frameCanvas.height=1080;
766
+ var frameCtx=frameCanvas.getContext('2d');
767
+
768
  await new Promise(function(resolve){{
769
  var frameCount=0;
770
  var lastVideoEl=null;
 
809
  try{{
810
  var sw=el.videoWidth||el.naturalWidth||el.width||exportW;
811
  var sh=el.videoHeight||el.naturalHeight||el.height||exportH;
812
+
813
+ // ๋ธ”๋Ÿฌ ๋ชจ๋“œ: ํ”„๋ ˆ์ž„์„ ๋จผ์ € ์บก์ฒ˜
814
+ if(fillMode==='blur'){{
815
+ frameCanvas.width=sw;frameCanvas.height=sh;
816
+ frameCtx.drawImage(el,0,0,sw,sh);
817
+ drawBlurFromFrame(offCtx,frameCanvas,sw,sh,exportW,exportH);
818
+ }}else{{
819
  drawWithModeExport(offCtx,el,sw,sh,exportW,exportH,fillMode);
820
+ }}
821
  }}catch(e){{}}
822
  }}
823
  }}else{{
 
885
  var nw=sw*scale,nh=sh*scale;
886
  var ox=(dw-nw)/2,oy=(dh-nh)/2;
887
  ctx.drawImage(el,ox,oy,nw,nh);
888
+ }}else{{
889
+ var scale=Math.min(dw/sw,dh/sh);
890
+ var nw=sw*scale,nh=sh*scale;
891
+ var ox=(dw-nw)/2,oy=(dh-nh)/2;
892
+ ctx.drawImage(el,ox,oy,nw,nh);
893
+ }}
894
+ }}
895
+
896
+ // ๋ธ”๋Ÿฌ ์ „์šฉ - ์บก์ฒ˜๋œ ํ”„๋ ˆ์ž„์œผ๋กœ ์ฒ˜๋ฆฌ
897
+ function drawBlurFromFrame(ctx,frameCanvas,sw,sh,dw,dh){{
898
+ // 1. ์ž‘์€ ์บ”๋ฒ„์Šค๋กœ ์ถ•์†Œ (๋ธ”๋Ÿฌ ํšจ๊ณผ)
899
  var blurCanvas=document.createElement('canvas');
900
+ blurCanvas.width=16;blurCanvas.height=16;
901
  var blurCtx=blurCanvas.getContext('2d');
902
+ blurCtx.drawImage(frameCanvas,0,0,16,16);
903
 
904
+ // 2. ๋ฐฐ๊ฒฝ์— ํ™•๋Œ€ํ•ด์„œ ๊ทธ๋ฆผ
905
  ctx.imageSmoothingEnabled=true;
906
  ctx.imageSmoothingQuality='high';
907
  var scale=Math.max(dw/sw,dh/sh)*1.1;
 
909
  var ox=(dw-nw)/2,oy=(dh-nh)/2;
910
  ctx.drawImage(blurCanvas,ox,oy,nw,nh);
911
 
912
+ // 3. ์–ด๋‘ก๊ฒŒ
913
  ctx.fillStyle='rgba(0,0,0,0.4)';
914
  ctx.fillRect(0,0,dw,dh);
915
 
916
+ // 4. ์›๋ณธ (์บก์ฒ˜๋œ ํ”„๋ ˆ์ž„ ์‚ฌ์šฉ)
917
  var fitScale=Math.min(dw/sw,dh/sh);
918
  var fw=sw*fitScale,fh=sh*fitScale;
919
  var fx=(dw-fw)/2,fy=(dh-fh)/2;
920
+ ctx.drawImage(frameCanvas,fx,fy,fw,fh);
 
 
 
 
 
 
921
  }}
922
 
923
  function cancelExport(){{S.cancelled=true;document.getElementById('exportModal').style.display='none'}}