K i|ddlmZddlmZddlmZmZddlmZ ddlm Z ddlm Z dadd Zeej"d r"Gd d ej$Zeedd ZGddej*ZddZej0ej2eeej4ej2eej6ej2ddgy)) annotations)IO)Image ImageFile)i16le)si16le)si32leNc|ay)z^ Install application-specific WMF image handler. :param handler: Handler object. N_handler)handlers X/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/PIL/WmfImagePlugin.pyregister_handlerr!s HdrawwmfceZdZddZddZy) WmfHandlerc:d|_|jd|_y)NRGBwmf_bbox)_modeinfobboxselfims ropenzWmfHandler.open/sBH +DIrc D|jjdtjd|jtj j |jj|j|jdd|jddzdzdzdS)NrrrawBGR) fpseekr frombytessizecorerreadrrs rloadzWmfHandler.load3sv EEJJqM?? ""255::<$))Da!#r) rN)rImageFile.StubImageFilereturnNone)rr,r- Image.Image)__name__ __module__ __qualname__rr+rrrr.s  , rrc$|jdS)N)ƚ) startswith)prefixs r_acceptr9Fs   O PPrcBeZdZdZdZddZddZ d d fd ZxZS) WmfStubImageFileWMFzWindows Metafilec0|jjd}|jdrt|d}|dk(r d}t |||f|_t |d}t |d}t |d}t |d }d |jd <||z |jd z|z||z |jd z|zf}||||f|jd <|d ddk7rd}t||jdr|dddk(rt|d}t|d }t|d}t|d}t|dt|dt|dt|df} ||z ||z f}d||z z| d| dz z } d||z z| d| dz z } ||||f|jd <| | k(r| |jd <n| | f|jd <| | f|_n d}t|d|_ ||_ |j} | r| j|yy) N,r5rz Invalid inch Hdpirs zUnsupported WMF file formatr6(s EMF $gأ@r"rzUnsupported file formatr)r%r*r7word ValueError_inchshortr SyntaxError_longr_size_loadr) rsinchmsgx0y0x1y1r(framexdpiydpiloaders r_openzWmfStubImageFile._openRsL GGLL  <<3 42;Dqy$ o%.2DjDJq!Bq!Bq"Bq"B "DIIe bDIIe,,4bDIIe,,4D %'BNDIIj !Bx,,3!#&& \\- .1R8w3Fq!Bq"Bq"Bq"B!RL%2,a eArlJE7BG#DR"W%qE!H)<=DR"W%qE!H)<=D$&BNDIIj !t|#' % #': % tDJ,Cc" "    KK  rctSNr )rs rrWzWmfStubImageFile._loadsrc,|||jd<|jd\}}}}t|ts||f}t||z |dz|jdz t||z |dz|jdz f|_t |S)NrErrr)r isinstancetupleintrRrVsuperr+)rrEr[r\r]r^ __class__s rr+zWmfStubImageFile.loads ?"DIIe !YYz2NBBc5)3hR"WA&A67R"WA&A67DJw|~r)r-r.)r-ImageFile.StubHandler | Nonere)rEz"float | tuple[float, float] | Noner-zImage.core.PixelAccess | None) r0r1r2formatformat_descriptionrcrWr+ __classcell__)rks@rr;r;Ns9 F+EN9= 5  &  rr;cxtttds d}t|tj|||y)NsavezWMF save handler not installed)r hasattrOSErrorrq)rr%filenamerZs r_saverus0wx8.cl MM"b(#rz.wmfz.emf)rrlr-r.)r8bytesr-bool)rr/r%z IO[bytes]rtz str | bytesr-r.) __future__rtypingrrr_binaryrrPr rSr rUr rrrr) StubHandlerrr9 StubImageFiler;ru register_openrm register_saveregister_extensionsr3rrrs*#"$$  5::y!Y**"Z\"QZy..Zz$$++-=wG$++U3*11FF3CDr