From b6a578468d348b413004232e8974fdd2533de96d Mon Sep 17 00:00:00 2001 From: space2lim Date: Sun, 2 Feb 2025 21:00:40 +0900 Subject: [PATCH] init --- .gitignore | 4 + .python-version | 1 + README.md | 23 +- __pycache__/overlay.cpython-312.pyc | Bin 0 -> 2003 bytes __pycache__/widget.cpython-311.pyc | Bin 0 -> 7443 bytes __pycache__/widget.cpython-312.pyc | Bin 0 -> 6753 bytes assets/icon.ico | Bin 0 -> 19309 bytes assets/icon.png | Bin 0 -> 29620 bytes main.py | 260 ++++++++++++++ main.spec | 47 +++ ui/mainwindow.ui | 438 ++++++++++++++++++++++++ utils/__pycache__/utils.cpython-311.pyc | Bin 0 -> 4930 bytes utils/__pycache__/utils.cpython-312.pyc | Bin 0 -> 4351 bytes utils/utils.py | 70 ++++ widget.py | 126 +++++++ 15 files changed, 954 insertions(+), 15 deletions(-) create mode 100644 .gitignore create mode 100644 .python-version create mode 100644 __pycache__/overlay.cpython-312.pyc create mode 100644 __pycache__/widget.cpython-311.pyc create mode 100644 __pycache__/widget.cpython-312.pyc create mode 100644 assets/icon.ico create mode 100644 assets/icon.png create mode 100644 main.py create mode 100644 main.spec create mode 100644 ui/mainwindow.ui create mode 100644 utils/__pycache__/utils.cpython-311.pyc create mode 100644 utils/__pycache__/utils.cpython-312.pyc create mode 100644 utils/utils.py create mode 100644 widget.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..eb23b09 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +output.pdf +captures/ +dist/ +build/ \ No newline at end of file diff --git a/.python-version b/.python-version new file mode 100644 index 0000000..2419ad5 --- /dev/null +++ b/.python-version @@ -0,0 +1 @@ +3.11.9 diff --git a/README.md b/README.md index b31bd14..2bb378d 100644 --- a/README.md +++ b/README.md @@ -1,23 +1,16 @@ -# Template -This project is a code for ~ +# Ebook Snipping Tool +This project is a code for Ebook snipping and PDF converting ## Prerequisites -- foo -- bar - - ... +- Python 3.11.9 +- pip + - mss + - pyautogui + - opencv-python + - pyqt5 ## Installation 1. Clone this repository to your local machine. -2. Install dependencies using ~ - ```batch - npm install - ``` - -## Usage -To run the script, execute the following command: -```batch -foobar -``` ## Contributing Feel free to contribute to this project by opening issues or pull requests. Any feedback or suggestions are welcome! diff --git a/__pycache__/overlay.cpython-312.pyc b/__pycache__/overlay.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ebfaba631540cd59f3245329c0e1324fef51ebc7 GIT binary patch literal 2003 zcmcIl-)kI29G}^}z1t*vxvHs2H%$|hQoTTf7D|bTnl$EoY0_%~fhDkPcc;gu`^%ZV z=*9?n2$(#S`XcFrAovy{;-mkAPfH_Lh87Wh@vUv5l)mW9+-)vr^B{-=`9?Q#zp(goq;diclWXCjL{a_UZ zG4q$ImAX3>MV@P0u^R?9-}2&XcQJeS)s-GRfIh&X+p4JmY2;r_He)l-!ki$a0kRk&TVNO++ju8Ygr&z2P;{T zj-mjF^VwoW&9wG>%qvRY_Hb>j(6L|Z^kxxzEyMyr>BX31?>P0M*MWPj0{)BrFQ2eq z>ezq!gb2BfFz(O%D+8Ic5l{WM9(fwnTyy8NMvC~+}RLc3+n_47881!dFR4~gv7|7 zw(Q$A9M%Jeo;m_DA6d2=Czzc&pv4HgzJ-$o8zU4@wT40;#Wq^+VdB{ac&HY)3#mG=uj&s}t)UL4>fl4Ix1o)u+Ne;*Qf=&s42$P~ z(|Ye#wkuB*sn~ZY=eoKdcZ05CLp_tKXTBP3=#!~F`NQRXbxI`4td~;#()Tm_>ZGs^ zrRvZT)_YXJkk%Jy4Hoyb5cvsuj?)2ibZ2jNR;&Uto9_HdTCOQzlBp}>i)V5lDTpKj8pj~4GY}W4V3Am2DyxeV2WtBH{z*?3ybhl~xp;Py`u9@aXb<1md z1flU5-+6(HH<+NsR)5&Y^Gvf0vCgc7^WlAQrnrlTa>4I(!mq7oo8V9?D&tSjL8bp` zo{2xX5akh(bLB2tx}H?y%M(?0x9}et!JKeZ%dA&JjKo!gd0NcdiS}ep_Ky?2FOuyx x>n^}NSKn!V+PnBIwu7T2{0e+5LkJ&%v7fXt7AAn5)*WXW8uwMWG literal 0 HcmV?d00001 diff --git a/__pycache__/widget.cpython-311.pyc b/__pycache__/widget.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d4358d99cfef9469f3d29a116344c33536e0338f GIT binary patch literal 7443 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 S$mQwmxhI74?FxJ{zyARTQu^8e literal 0 HcmV?d00001 diff --git a/__pycache__/widget.cpython-312.pyc b/__pycache__/widget.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e1adae19899a466dfaa2d2b93fdb52724357e1a9 GIT binary patch literal 6753 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 J4TD?4>Hm+FEPwz2 literal 0 HcmV?d00001 diff --git a/assets/icon.ico b/assets/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..0cc5a2c025078d0265e44d647d31f2875d013970 GIT binary patch literal 19309 zcmXtf1z1z>`~G2cBaJjlry!xkMk7jyAk9$eR-|JCL{LFmL{dqmq(ng&EsdfQ5~D^4 z0vkCP+wbuC{{L|8+Tmh*&wHM{pZj@U03ZW@&wt1OA;9`30C0lW&&*8?8R;(4ftQRo zjPxwd|9k$Tp#t9=9#y!V|KRr*QSr`P@_( zw{W*<-aU6Ur+S&8blR)>RO9!2Zq6i7nDlkd(S3Mk&hy#)+?6Cs*zmR-kqrCSsuUI}KhE+57L0Q{ z8eTDB74_c-xJbyZx2rmYb;nbW?E=#`&E?*lkcH-j<@Gs7Mi&GJ+4p2bdkVt*E5RGD z+9KSZdtZe%GqSyslWh0)pxETj9n~*xycV_{2zmJ;5Fck-`#n{lo(YE)BH&Z;$*2;VWehem?8rzBE zm}M?E-7LeHJ%;&AbcKvP*+r3_613*2=xyciEsh4;?Q%1dIicZC-Bexu0?ct@su>8f z&^=yU#PmWqSzi8g79(|dQ95f5BA~N|GU89x-Kgz??PsZxYlt-Tx4pgKpplMUp)-enB;M8O;VH zQLp~n=2K5GVclL5?$}iCJJZaFexEyAjNOZ3A+3b;%a_*#@>8pp)dVq8me_Z%k;hsD z{>XACQ`o$q%6l{!J4Q+%Bo!}w_+l2!n6s8IzaV(ImXr!#jGT1VK+s@QB2x%X6D?Yk z)j_{StNy)f3=%1=TJxu}tnEddBqif>dgx>J*jJ9QJT^`H*7?T3FeW4RYb4J9f^fTD zy(-OLVPbi?5GvL$dFZ`&uWWWDv(5NGt$4{(d)R5~29nB7A`elq>5IXBqd4g0tgg;rEcj}klyn7QKiz{i88}wPIrTp!A zb`<(;doMVo;OQDXLK2n2)tU1n;=1H&PB3wi>AT&RFOFez)Ei@f{JuqWe52L4w6m0u zV@59Ga||=m@A>raP95i{v66yW!{}@NW|L}Kl4|Cy#2SH;x=^htLp+b+&o?E?8z!a# zKupawv!GM4?Xo3&Gtj>ip%gIk)lt)*>Ts8ZTcURYtAxL!+WK@MOj+%ZA>Orr?AY6` z*qg3sKU_B_fsbF- zgAuG2_J9HTa%JO$@rxyoM1jA2gl;CwFndzXg-|UH7(VJNd3|w6U9W!rU^~R=tidAd zh`?IvXWn<_wrdJtvJV*PS{WF}clW7?Dnbf#B+Y!y420vu1xF4D@*d^QDa07Tk)OTc zg&D(P^LVv?d83H{Itjs7P%Q&MyQ_txwJyBx81!+cAS7-19nYE>*BPo z$Fcz5I)Va2LK;jA*hj=Eo1h!zU;hR+oSo@n_kvhRuLp5MEa(iUO9kEJMYYQ$@$f!U zL<GE%PsPJgOa82vCVg;{G6Q%R)ji6niNmF%D1CGz8yrFkr*#pN7xyhC*( zTK@Mqv!a)t@%sg~!L}V@gLR(csh);VVBeKy!IA7U@Kvx2NWH?2S3DW0 zVcZi$$Sa=EPOvQqv-tHg9Xi*Zj?1k-e{!7L(aAC>uS-1Ygmj?tw5VVj#|lqyL#c&W zf&LfKU2(va;a)I~g(mkE{7X-_zNdGVGLbTsbjC6?cC1kBkffTq2dsMoGUS5sHqqBk zXelH1M{6*9A;CZL^7F6mT!}Vx=(i`1_+e_af^Rafz{&9W_k>Ukc<7)+_AB>YVBH?j zi%{K&WTE=+rpCj|b8DlBue@a6^+j8cb7RaoT2n9G(|w`1%#0nQtbOu~ki@Js*rV2g zs?eh9aNr0bJCR25?Wu)UZ9c=NgqS8pSH-PrbVZQ8{ZKLjsT;a3Ow`+T;U19JB^<%7 zG9%lmI~X)(x($h@ec0EA>i*Be8oiGRhU%WgOZ{`7( zzg=^(=#tANX5{?jtfOPnf)C}PSu_t$X}*vY;Jz5f-1xK0@Vexo@I0G&Yx<-TUf=l7 z)QCNw05T7W6>FQ_ zp;1(i*3>oc&N%+7dsxo#e+&Lp5XXlj{;AQM;+ey41XZI3VWRgv8Pbi9qQy2vOV{V6 zw}N`NPOby#9pCOrp|YvfLwdEoUwancK}Z1A1hf9z7o51`My5cy1m)<%4fWl}Dmeq0 zj-4UoRQE+veQCnglQ8al@Lky22tDG5vc@5oBYOn2key-bbD_!c6_pkP7-6R4nZm2W zd#aqzlmHU$gb&!#LW=(>7W$`oPX@FZ%oO~w0EIm#@vFMxq1Ka*F?`znD1W@;U=nGN zQ6v|OqT!iYaH?EL+8`s=PsreE<)Dowoz|W3#qwNpU?l+ zu2XkROFb52>}S5d5)a)84O(pb*FYxwISSf4cS=PPF$?QMKz|g&uVAOA5Ke>PlbaXQ z;G;6^2)EJfceg0No(gt^Aw#ZEth;SO?jCwQFyF;w|2S~hhzDNR@4E9ht_!qlEm+<} z-7d2H^vA#L^lBpkHJ(Z+bm2_o>C;IQgCEL~M95VcJT`Nv*9H3IcD^SP6nmg#e(=X; zr-}MULKNGpdt{`BO_Y=EitY{G*CrN zvqz>Qje_)$=zJU>n@tLF0xv)?w41L)^f(aK5UmX~T>Qe%Hvw)T#z72W+WrEO6H|jX zdmNTRi!Po06If`la`Y(Vn;{FzXMq3o0`RZ#bwUTi5_f$9V+dHH#&nA4BCCY)JnBk& z`InUFDHQjxsO!p`s;6JAHF%zMZlQJgRp<({w=RJBy)ToRQXo%&V{?~X!`sE6l%E0c}6 zU%ia_dR$I7CUfF>nkgFc`1`o}@d+^J#@t8r;{?j%(4M!VuPMPJJ73G2^kyVcMsE0< zdo5<8_D88h6Cg~C1M>3i#mf{cBuVZsD~G{$kux1_>Mxs4220QeM;;nG@yFuIVkq9r zF00R6q?Q|q+Ld8uK_8{NJ+|)*{_8AFB_Tl_WzW_G&^R>i-W@CIZ4UaLZcpuG2D|p# zy-jfw%I!dgO?l!#9N&2bzd)M7A>QQ3|B{j45DRS2*hMVgr&6W}4nxxo&$Y?ZEs+4e z@k9bHedZ4j^{d%GPC21x_QpWZoMON{!}>&PmUXnUSPmtOzlU^L0%uKii+CxOME4*q zFu*M);}#9zBupFQS1Jw|=n&L9X_Ncqb)yX;W~=#IKIdw(rxbLI=bn)MJPgjue)(?` zF8=WbiXjorBZ2=JcL~a}-5q$fpvUPHONYsg(R5_ryR75vK54lt4T|X79K_EL!LRpi z?w9sPwh?>t0|e@dpWe|;QhTB*UKREU1ES|f%gEb}0=0F@SrWZa`B#Qq#D&kU*B8u~~BOZ_cqN5j}EB-_QJa4xSv1V99_>vOZbTyJ0{*TK~nRJDLTwt>#o;irEN1js9 z>pw$g(k1+RsQSsU4zM{{CbB`U_m4q#Wj>j6%% zGnDiw>6DuM{x02G0rHWRwRo@A>=g(OO@%cB9V)(5wJ`)Z!|~3thxl^IlG1`BAjZvt zWT~GJeCo^u3bB($G+V`Z=8)UNx{evbq&pYW(L)FSNDkpq zh71Lnts|x_{JwuS4^`<)?4`q7iJJ~Dv|mtR5EFUwc`vu2IdoqLZzO{W6M2U1C6uTw zNPa`7_xTb*|4@#>`R;avpnr`k*Z(n6rcXwEKas{2k`aqQ?ErfwVLoriq7`%TpW*gx z$OQH8hHWVOoNh-FF?^|mBPD2Om9fe;t&{Z3~M6kEf|?_m&Wb|;KwUxs2c#A;Gp9K*a!bU zME+IwaS{#R@7IJv=i$2bYv;KFX)^d9Ly9;;L;(~UKK%QdutTx5Kfe5 z>^!bPgcd*SGRFK;mMc9lgTj+wG*z8raF1KW?gfhm{X|6!oy#z0nHYUr2AHyPtUC%x zLLN8AvVjSJY$+rr=~&va5%-44uI>`y+y{*^|Hy=y9oTLTlAS7xk!~1~lmZJBo)7ph z;f@*#I?hfbg%x;kJ3nFxsq;ftbpAC{i_aX}yG^h&>XO^kiwz9Q4~y9xqstYy6ZWwk zWmoX7G$i}S`0~2Rs8yZl3U^eb5=-D1*PyIsDoG=eQI?fg~19B86n~JFy3;-h#?m|7yiHJ9W@!TrQg(!>5#dY!YKjjl3s9p1|Hhvj^W?URn zSBv`=RY*{!vWyPv&00t(IJI{8p%vcCAz=JjV}Fm#llL;Z2OXM7s-VK`04GU&>X?<* z0iQ)B;#mtPk)a#eI$ctvN58Wn5qm7?VHDkWp`X;9l^sSU{*mRg$YbH6yQl2PgOo%zi8Gkb8wEF`x8f;|q6 z)x@D$EzV1#b>q*&4{m+_8pkRZ6tfTy*e`yQ!zo;CwPh9({91kmKb=I<%;D5phJHjd z%x;wFhkRlyDWoX?V-X1EgwJNA<$~mI!I+&XV}&+Y53(6HCq79xAJ&HuX<{*{=(kt! zSv&|r)$nodv9c3+vvKf1Ph}<3 zJTWKDKmJPFM~+b+C8dt=UySv_CRYc;M*KlqN!a({SSlyhs?+K(7GM! z)8eDXrFh_j) zV&8cmCYkG)`Stw~TU-mjy!3LkYvn3D^G7}NIuLhHzOh1z`GrfkhyqYwDW2A3z`@C}DPAQQ61SzS5~{{$dti9A{ABm9zHB?CW=tV+^SX#I zi7Js)YOrFB+%Jq<#bgKRUoPA!`(@Hb6XV8}id5soK`Y4c%rSzm1D{AV=$BMEw09<0 z!^0t}B7mP|tTXotifl>nXClFAG^CBZ-ufMNYRipxDr8^CIK% z>CWhInt_xO@$1Z(w2(hl%^pihc`0<8J7ujH6oct}m9xq8id}kr+5sf51io3wy}`@Z zaf78mh$NzM^z#9^`6RTSVkvs-(?`IxV5!($Fmbh*v@g@*dLFTPsJeA5r9A z8@u7g)^}!WN~9l>-fh|nXO?a4)E%nz67Mf0#~y)BbImnw(*}h5K?9o(x)FZ=u%}Aj zF9G`pMWz=S@QB2@S7DR!%ylE<-vrL z*W$EDpNP_`p5{oapD-ElCcq^qu##<~l(P?nh+~}tECUD{9NcB}A=6+zO=i{*{0K{D zV76dK0kqa^8g9QGs>M1`<5N8UgCp}Mj+=ucHakTn%KtK3`be7OEmT~alq@Sy{v{|c z1aAf-7QX8hd?tP+6ia7U{dv54_E!VJ@ZYj9@e-)4?Jt$JCX-uEgY$dhwTI@$afoiR zz%0EmtDV$#gUkIWUa6hs7_9zy@7et3N*fD~c`%^rZa;2fg^1wWRtHJ5v7gl<9}}m zl&BsmK-j5yB0^T}!v%a4 zZ^S%#*bNf_#b5N9PHPA=p#~kH2Vaa>NLP0^fx$61!j6J{&jq*tEWhU5!=I98w|>(m z!oj$X?h{bA8J!@w|9au#v0s~IBC%2S>v9f5sR+-_UXOlKII!Zb;XBG&CZR-(jAO11 zs44lEpBW$-yI^s|lSzxisc2&|0~}ns(RePfYm?1^x(BW@DcX20^nh_Z_MWlQ`!oTS0k z#vT`X>zx}z+ybFdN^;yBBcfYM;!Ob4NA#c!t09ayBTRgDCzB-IkCL5{Vd$EI(*jOk z8@V7ejx-QedLa10*l!k61&9uPx9|Y_#@{WM3Yb~ZJFZ%4`X6i(ECZH8rZEJw{8)mx z5Q(1!L9uzVHy8Ews^c>#3~*qOdz2hcU@yjqC4q~Bjhu_kOOn}A9x_rkmD+m@!P{lj0`nW6d?zyi`Nvh`-ZhWg0 zwCb7&HvamZa`$V8Z|w0LSO-;aLJMw-&HG4jB)DhR|Blv?*8y~69AXq@SnWq6Vic#> zvPhR239e6Ns26Y8MkYgRi8cc?fRUNI>R@JL?;H&l3TB7)WKHT$&Ztt&aT_rUH&6Lj z^!9qLlKyvJDex_!>9nZrO{Pb+eTEBrzny(O2^4iizU|;tEiKp)fZ#(wzUF@}M*iTv zO`gSf12GDi+cQ#^o2>(jqf5P6{63~k=Hb=C{bl8VaEQGF1vcg?)e=cZ7k8?1Xw-LK zc)&(NghJtyJg!!}L+nDb?bc|!ilTj9X8z{8JO?gP?}BoGlxt-MB_Qe>Jc2wP`(H?z zOwwP<8x~1RzZHvX87r)}nWgh7LoD^INyu$85^r{T1B{dtLFsb(rYj9Fkou|LogqJHUj#C z%%#bis^bScCt+A{Av5PV`!65pyHcJWL#f3<_QU@{3jO6=VN{wd9#eh*-V0vpyPN7) z{la3>s9cxmu6!Alg36KUatQWt-<}OQwu=UD^}feIywoz>24Lxd1M}la1oY>+Z!3-q zx~o3(^b5U1wd2aIH_)@Dl9l<#wu&&~Xg~(YJG6ecL z3NPHl-SHf_5_{aVz?R&G$6^g~lQ`~(~Vjuq&mJy+_g5p~e zWO_|-MPEYPF2q>(E7DWLT*L3vyXNW*4lW3TOCmC2X@Fp>?C2)%t1Bq3r9u$vJKfTW zxLZ~+bVdCFz-oIdQVskZywrae;M(9V{V7b^A!ZYvA1?}{^0MCVhJU)9I6BDUG3Q#F z+S@fr*jozvs~dCRTLKqPZ!ZuYNjUZgy$2+pqRGo#c@@}=mRpJ7HXFDWL>!xLe)(_{ zE?ufk2nJaTcXu_j*oa}OdzPO%Z(Iu}hNp7LlUB*SF30YNwoEn9Eg`Bvw91{A5ICMc z6Zm*kLPJtKAC2n< zf135m(%UQ~xd03BL+d9>*JZ-XwWNDZ@l-J~*P~D5<(;Cl>h2aLd8IK}EqSt#Cc*qX zdgIPMPz|Lf;YoD}*xC#VMKES>!>7Zn7HGv3$I|r%L{n3bt`kxF%K&GUgCf>|HN_P`Qdn zS*o<@2n9P@8^q|bpji3NnaUM+zNdt2Ov!bsHL+`ws%Z&8El~y;MAr(xM zMgFONMwKCqzbES^BZ%_p+CyeksZPTB+5|zQE?7%HB_x>%Bcdkq$Akb1O0a?MSX#}R zH35yvf_XApFs-1`4RveuQTdH3>ZCauPGBR5ctr6X$JSaiWG<5Ywr zX~xMtr3%hjS-LQ3e*f61*(@e0_}1HWHC0mY;%`CYvLxkTl~s4#7=`>|+jBSZultR2^!-^6fI8UQ|05N3DFdy~Q+0|K!XVGeCC)cf zUKHb&!3y-%J3WE5S2+BpH25!TgGA$w>-%D9=)9kdjfnZY1usT^H4yT(@jGs^`N1$+ z+j9#@p^_AsB4mPCteoDZ#QM5q@h_7NQDOq@?n}MY0>!<&3~Zz^SVpt=sL#tK2Fl1J zhNNFxH5qjJK8WZHjSn2i{PKqhtFLlcNQ;I4Ej^d6zgy-r`Xr2qXy#PE%`&*+DK;I*mPXpZ|5P+51pec zbp=^+O=J=z1x?Bw4r6u2yc182yL;8pDE2u0=}I>JD+vwr&;3_8%@;+$xGBvrq`J(! z0g?($gGmT9#(nbyj5CVQOK;D|YZ04c-Ch{wT!V1f&r;xT3K0{)eaJa%snOL)*?9(W7dMrsWVTgY3)~cV`6tJ4 zur82)u~o<+*H~MVlp(TP(iI<>4Ad%AAV!W~kltXKtIkCt8290WLoO?@WmSmQjFE|{ zpW-tc6&kmgs-y#yLD< zwqK;~cc4kzBXD)3Uy`&A(k2eDAW}ddid$S0=BZqMJ5Ws9`kJ;dwLcE+hpd; zEZ(`?4+k5cAia=O%tCsT&V8D?6c#M?W=I!lt*}xXlvZQ^VBmQQb%}02lRhQhr-0FduJd8^ST~vz z*dk~p7Lp$({8s@n3nS{Te2WKQG%lx5zJB8n^Wc^Y$6r@Ke8un*#Kq@r$(ZA5(ZHF+ zco>$i-QBsvdK}Lxi`${<=YfUW-+ctuoRdu7{VB@K-f-cqObI_K9;Q0Njcr{On|)=y=?ZxcE92 zc#Q6nrLu!m%*QVOK3g^nqwSF37 z)~2Yl@_l)q0k45FA)rhcD9axESV)U^M|#pAB{4sJmoEU9SQyfN->J3?dy_0x{-=V@ z(yY$n;PvGD@Gd7gXCu2~S-JR?y|&A~7j869D_st2h){$$Ux5^{`BA}Z`j)Ap+y4D1*z=4>ceXN%*=Ux;0c|k!Wfn{x25iWjey+DoJ#*kK31QF% zZp9O@MHgjBOabyeB#uxHoPA6puugF*gy32UiD^qEjb)Y36nw~YYo+%w1TsZ{S3-c; zq^U2zgL1E_RR#+UTeYRqTgu(Zw7k+`UPc3O5)+a7QLipy{T{3K&nQCh7V?js> z$Ty})5A9QM<}MhFh(_tc){4Gfjk!fzEyF_Bd3xTbsd{{O=D_*k#uwia*R@7X3T*X) zZUFcBILc6tX5J#@e^(nSl!-f-s|vq^X(G*)dk@7zKYG>sUV=DFLY#dtdg9^aD)G;s zv09m}NVAiR6XX4iU2yOPgPY89K7udT##dx(ZVD4`E=2Vs82VYzH_$Q)PJ3Eo@x_3oA#P3I76(}xZY0SWb90a~nTT--T8IR+cD3|dISHzWhL zZQmps+>>j47cE5x^=~#``PiEu#BI*4$E&Z&;-4DBg}y)U-Kvu5XWg;#E)OD@z47Hj z6jB}FEgci(rF{#xk%;yXSRKntdSR%sV5>8rT zsZtsYBCg=gV!I-KFZ-HVr!-jodf8-J!{3_i)o1gb>DS9okKUTu5`0t7sQ)=(n?IJj zUoSz^I8i1Dp@uP}!c+XeX`ZfhpW>-Xz+A_xRV7YK|1B-ssyh- zJ2)jT3s7#Ia!3X1R?B6j`r2MRwV^D@72;gAb9W`-m<{Vd?v!x+4LOW~VlpDNhDQV3 zR`-R0OjYvtcQNf+i3qvS_#qM$lMPzOm5B!nf~lzYZjU#Q-=xvRrd3<24r+@wzMv;n z-zAAWOPBi;VNdcMcYXp>=|Pb3-CGL8pQV$8R?zoHS>Dwv=Cv^acekF`5GW{MvHWUx z0qSg0CdhOWlDeCUt5DQ^e=kH(PbPo7J#8-in_+E_+*q`@*KEE|44*kc@(GacfdVda zC^SwmfuI_?w*}L$ELm1a-f0++;q(dK8Ca}t5L%*HO zIDq6|>4L6rzx>lmLM<}TwzAfYGxJKM&`lmD8EbB;4RCbm|E(t9UA3b_r2qTW#&CkU zZv0|6@*)*;DvQyd)x(zu%`Gex+e*U3xCNSQlo?LFlkQWi{NzH(?5!Y`o{y^JVOuRV zYHLpjq2C@jL_;xxtEJHuUBdkcv$NC*&x1Jo_nzOKy!d{N={k$HoJz~@D`0IW!HG?> zeg~q~07;;KX!v7BuaNmmZS#MpGunz6v6%{mdF@n^Pa+8i%Rsr!9`!^2o(mJYe0har zrE58~bs{0HZ1BlK*9Dr-W#mF1A%wu`d*GYDWJ@ha$synv5~~kz0i>nGbU@sSgnCW~o%UA-MB4kI*w zCPcj=aetoAlVccB{K!LE@U@n;S+a~R(wHCB5#m}x4Pkbg&I^>U6D-p$6=^Jxb;_&h zO@cwEZI03KA(B`&RH%7h>rMV5cVWh&(2Fa_xn?#XR5p-zey<6^)y5OxPvQt1ZCMBl zqyHYSHu*yJ59FHxrmNAPZ*)=4vHu8wg-tSVti?`#CXl6(O1Bv9iFqH$Uh~m@#+Sa+ zoJ!dtvJc_>lb}P`?5z8kMQZ$*eI84~0r{eXLfe!Am}Z+m{f-JuiJ0y`L3*4>vX?`^ zR=^}|YtY#7UPQfDyafFayQG3?Z;#b~iDe;OkV6!L!=*OlO{N|?G*uISFUGjQn-P@} z6a^u%8KA<3NT#1UbF%Wc&0ijTDxtr(Ycgc{rQevP@F8ap;sytP>_hgTNo+Pi07JsfZxE=j@C5`)pmSr*3;>@q3i_n-5@w zQ0HabkzKT4Vayw=M(Z3FpYP+5u&%pY;lQ9Gn*Dn(W(Opjg-KSn;onlL9*frjG|l&q z_BqA^C3GR@n5VFw(D0dnj$xDW>QPuQZZW@9O;Smz|E20#=}xzTNE<@CXJ1eJ2faGaRjL&%4D@}x2fOo`nUYnG#X}V0ym4qcae!i25@aUF zPxtaWvXFM1nR^hxEF*qL#quVz4zXOA2!*NkkQ5m(2!UZ|`-qX8MZ|=|?J+Ay(Y-BQ zVPX>t$>#L{f?^59?88DjTDZ`UkY7Qu;n2)jL27yJ$P0W(g1C+ZbXmd1+C;@J9+=X* z7s=zbsxMduOWM1XC5r9% z@@`AML=xDr8k6R7c0wekU6B=%1j7n~w`aBJ_t;fBmmjom)+t|s5O_mFJ!|w~QXGLf zA%>736ixrR!RuXhja#~}FvQvG;P}%IWi}t(P4PzkYJr2hE_1KjZYw{qONgmcF0KZt z6XQhG1q}#xZowuMb9B#e6Pj`W@!F_Xh{7Bl+|b%yTv%l3N3br@FMLad-hj&|{h0hh zOICyg%)d_}r3eh)$%Xn!@=|(=cdrfD$R&?RWUva8QiR*tMeyn{s@#97?o$Ikzs7sn z6|;teEwFslV6);@KM5h6PGajPu~$^Qaml}ZtxmQ+JUv+ml}+pW1StB0Rr$b6{{_bQ z;8x|M0zvh`O1H-#*DSoCk%;0X(BcH?-VwC?bZPX$be;XV+Yej&|7m_X(g|TYzS@rq zff4wfO}(0=MI5hn7doOvCC2W^8ktcc0U=$<9_j7pNWza)l3gO2Uk{Jri`#p<_4vwj z$C)hO@AFrFivC!q%yTcVw>?~BL4>4YNOW6Ik9j-}43{=EyAiDRSA$ZG`||!Ig`Wk8 zR}1_Zg}`F?H!1Prv0nWo>qLZx5s1RcpZN$Z81DOhZrjTaS2_J`s7r)X-X?ZCm$%=x zbMy2|an26;SlOE7{Y0y}=)US^$;!-t&2xlxosrlJc3Ql(3+J;4A<~84n4|e|Y0P^5 zkF8GvFPtJKEqdM6G69L4xmQehW{TUyyXNpK(<&`q#<|vnhg*=8cK%K)=&Z3xw~q`^ z5u=$fU8YSO5+)Lb`gfK)sl53AbR5!~bDx>6%hiEtmHzt)e1QmV7)3AlOSQ$YVY79d z*HLJf?J`TDkQNWU{^6clB8oqI2gmn5KV zxhb>D-UEFPn#;D|yH6D#r)4W<fT)g=_@g6eRG)*?wwYV&h*aum71KPXj3W|O1?1I%TVh*BwaG;ZR zsHL;o@&!vpikCi(O}REPL5N7pfpLF~^q8Rcph<{=JhPu=k7ySc343w+$GMTfy;FYi zji_<_aZA|(icJ}FPXefyrHOOs1h8{b13RtnPQw(QI!=~88$j8nkDp}cPpU93p-Srs z3BqSD|4L50y+wTfzIyPzerJ^x4e%|e{!yZ#uHL3)KdIz7$kN67f`fih6=dpn7-grf?L8Pc~8k`o()((SZw1qH%dSLX90gvdTyF(6ZTE3DSecIXxr zgfNj@8!D|L!bD#w)EYXz@EhPdD=60s0hW~dbP4b%S=2_vit4c}w6)-r^eBUGd6$6% zs7;Q(ro!4=Wg-NP?zWu$w10nDOe1(uS)%pO&NEJxW+GNs>S>2nlS_G-ITcXiehWe} zzfClaifh!U?$m!@+0M`kKc;_FC>r?6$ktXzaRpr)OL*j$z85#EXQ)w-nf;f}9zVp6 zpW!yx%`wIm0@hZy8V%}mqW2+Pf0cIIi<@7Bt0kFHB?Y>=|*Ob_`!k8Is|g5 zntv#J?iu(%L7| zmJai$VrqAIj?9?GR4*O4>@iY~cO*zrcCo}s5 z0%YSlO;>L{LEcD;KjtTU1s^rBJl2nneGo7|xSLOn-0e`|8`G2;K=6&jZPXviTiv2X z2VIyKfJx7^sj|mvRapRhWI-~(Hk}DG;D{U9mM}upK5spVPPhFTKLL$wZL69ZzZY0$ z)OYKsNTzuAXUEV^DwtAn*4M@25kR8}HB(mb!F1|#`kV+N#!j?*( z@ot^eDPDZWud;CVqOImN!q~9;&PD_T*;W%_TMC3SB{2v; zlW~2YZ_xkNi^ysq2(61sQ6g#Fo`?Y|E!>g|YzU0msTO_{r8ThT<(P4Ey1O=OaNu#e z%n$|EpW!3n(L7ze>=$W1%bKGnaA4Q~$a@B;RsMUFWs0l2YwDMKSNTiw8#9FNC9>~J zo0KJBPn!mr(lKsM1-sS*UCAa?n%*GFYZp99HOvo&2x)4I>=2{ed3vDi&LDrw@iO

0@GLq-HzZwM;s_<*d4 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 literal 0 HcmV?d00001 diff --git a/assets/icon.png b/assets/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..22f8c4ff262268b9f345326328c2237cdbd9cf4c GIT binary patch literal 29620 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 self.params["pages"]: + self.current_page = 0 + self.is_snipping = False + print("Snipping complete") + result = QMessageBox.question( + self, + "캡쳐 완료", + f"{self.params['pages']} 페이지 캡쳐가 완료되었습니다. PDF로 변환 하시겠습니까?", + QMessageBox.Yes | QMessageBox.No, + QMessageBox.No, # 기본 선택 버튼 + ) + + if result == QMessageBox.Yes: + self.images_to_pdf() + return + + if not self.is_snipping: + QMessageBox.information( + self, + "캡쳐 중단", + f"캡쳐가 중단되었습니다. [{self.current_page}/{self.params['pages']}]", + ) + return + + # capture + self.capture() + + # click next button + pyautogui.click(x=self.coords["btn_x"], y=self.coords["btn_y"]) + + # next page process + self.current_page += 1 + QtCore.QTimer.singleShot(self.params["delay"] * 1000, self.capture_next_page) + + def capture(self): + with mss.mss() as sct: + monitor = { + "left": self.coords["x"], + "top": self.coords["y"], + "width": self.coords["w"], + "height": self.coords["h"], + } + + screenshot = sct.grab(monitor) + img = np.array(screenshot) + img = cv2.cvtColor(img, cv2.COLOR_BGRA2BGR) # BGRA → BGR 변환 + + # ✅ 이미지 저장 + if not os.path.exists(self.capture_dir): + os.makedirs(self.capture_dir) + cv2.imwrite(f"{self.capture_dir}/{self.current_page}.png", img) + print(f"> Page {self.current_page + 1} has been captured") + + def images_to_pdf(self): + image_files = [ + f + for f in os.listdir(self.capture_dir) + if f.lower().endswith((".png", ".jpg", ".jpeg")) + ] + image_files.sort() + + if not image_files: + QMessageBox.warning( + self, + "이미지 없음", + f"변환할 이미지가 없습니다.", + ) + return + + first_image = Image.open( + os.path.join(self.capture_dir, image_files[0]) + ).convert("RGB") + + image_list = [] + for file in image_files[1:]: + img = Image.open(os.path.join(self.capture_dir, file)).convert("RGB") + image_list.append(img) + + first_image.save("./output.pdf", save_all=True, append_images=image_list) + QMessageBox.information( + self, + "PDF 변환 완료", + f"PDF 변환이 완료되었습니다.", + ) + + +if __name__ == "__main__": + app = QApplication(sys.argv) + main_window = EbookSnipper() + main_window.show() + sys.exit(app.exec_()) diff --git a/main.spec b/main.spec new file mode 100644 index 0000000..2ad7f2e --- /dev/null +++ b/main.spec @@ -0,0 +1,47 @@ +# -*- mode: python ; coding: utf-8 -*- +import os +import sys + +program_name = 'Ebook Snipper' +icon_path = os.path.abspath('./assets/icon.ico') + +a = Analysis( + ['main.py'], + pathex=['.'], + binaries=[], + datas=[ + ('ui/mainWindow.ui', 'ui'), + ('assets/icon.ico', 'assets'), + ], + hiddenimports=[], + hookspath=[], + hooksconfig={}, + runtime_hooks=[], + excludes=[], + noarchive=False, + optimize=0, +) + +pyz = PYZ(a.pure) + +exe = EXE( + pyz, + a.scripts, + a.binaries, + a.datas, + [], + name=program_name, + debug=True, + bootloader_ignore_signals=False, + strip=False, + upx=True, + upx_exclude=[], + runtime_tmpdir=None, + console=False, + disable_windowed_traceback=False, + argv_emulation=False, + target_arch=None, + codesign_identity=None, + entitlements_file=None, + icon=icon_path, +) diff --git a/ui/mainwindow.ui b/ui/mainwindow.ui new file mode 100644 index 0000000..e88ddcb --- /dev/null +++ b/ui/mainwindow.ui @@ -0,0 +1,438 @@ + + + MainWindow + + + + 0 + 0 + 340 + 436 + + + + + 340 + 0 + + + + Ebook Snipping Tool + + + + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + + + 1. 영역 지정 + + + + 4 + + + 4 + + + 4 + + + 4 + + + 3 + + + + + 캡쳐 영역 설정 (취소: esc) + + + + + + + + + + 2. 페이지 넘김 버튼 위치 지정 + + + + 4 + + + 4 + + + 4 + + + 4 + + + 3 + + + + + 버튼 위치 설정 + + + + + + + + + + 3. 파라미터 지정 + + + + 4 + + + 4 + + + 4 + + + 4 + + + 3 + + + + + 캡쳐 영역 + + + true + + + + 4 + + + 4 + + + 4 + + + 4 + + + 3 + + + + + + + + + X: + + + + + + + 20000 + + + + + + + + + + + Y: + + + + + + + 20000 + + + + + + + + + + + Width: + + + + + + + 20000 + + + + + + + + + + + Height: + + + + + + + 20000 + + + + + + + + + + + + + + 버튼 좌표 + + + true + + + + 4 + + + 4 + + + 4 + + + 4 + + + 3 + + + + + + + + + X: + + + + + + + 20000 + + + + + + + + + + + Y: + + + + + + + 20000 + + + + + + + + + + + + + + 조건 + + + true + + + + 4 + + + 4 + + + 4 + + + 4 + + + 3 + + + + + + + + + 딜레이 시간(sec) + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + 20000 + + + 2 + + + + + + + + + + + 페이지 수 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + 20000 + + + + + + + + + + + + + + + + + 4. 캡쳐 + + + + 4 + + + 4 + + + 4 + + + 4 + + + 3 + + + + + + + 시작 (alt + F10) + + + + + + + 중지 (alt + F11) + + + + + + + + + + + + + + + + + 0 + 0 + 340 + 21 + + + + false + + + + + spinBox_x + spinBox_y + spinBox_w + spinBox_h + spinBox_delay + spinBox_pages + btn_start + btn_stop + + + + diff --git a/utils/__pycache__/utils.cpython-311.pyc b/utils/__pycache__/utils.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a9eb533b3a5c0eafe797621d5a9a6050dd9f8635 GIT binary patch literal 4930 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