
    &Th:                     l   d dl Z d dlZd dlZd dlZd dlZd dlZddlmZmZ ddl	m
Z ddlmZ  ej                  d      Z ej                  d      ZdZej$                  j'                  d      r#d dlZd	D ]  Z ej,                  e      eZ n d
Zd ZddZ G d d      Zd Z G d dej                        ZddZ ej:                  ej<                  ee        ej>                  ej<                  e        ej@                  ej<                  ddg        ejB                  ej<                  d       y)    N   )Image	ImageFile)i32le)	deprecatez^%%([^:]*):[ \t]*(.*)[ \t]*$z^%[%!\w]([^:]*)[ \t]*$win)gswin32cgswin64cgsFc                      t         ryt        j                  j                  d      s)	 t	        j
                  ddgt        j                         yy# t        $ r Y yw xY w)NTr   r   z	--version)stdoutF)gs_windows_binarysysplatform
startswith
subprocess
check_callDEVNULLOSError     Z/home/stella.sw7ft.com/public_html/venv/lib/python3.12/site-packages/PIL/EpsImagePlugin.pyhas_ghostscriptr   4   sY    <<""5)	!!4"5j>P>PQ   		s   'A 	AAc                    | d   \  }} }}|\  }}	t        |      xs d}|d   |z  |d   |z  f}d|d   z  |	d   |	d   z
  z  d|d   z  |	d   |	d   z
  z  f}
t        j                         \  }}t        j                  |       d}t        |d      r6t        j                  j                  |j                        r|j                  }nt        j                         \  }}t        j                  |       |}t        |d      5 }|j                  dt        j                         |j                         }|j                  d       |}|dkD  rC|j                  t        |d	            }|sn%|t!        |      z  }|j#                  |       |dkD  rCddd       |rd
nd}ddd|z  d|
z  dddd| d| d|	d     d|	d     dd|ddg}t$        It$        s:	 t        j&                  |       |rt        j&                  |       d}t)        |      t$        |d<   	 d}t*        j,                  j/                  d      r7t1        j2                         }|xj4                  t0        j6                  z  c_        t1        j8                  ||       t;        j                  |      }|j=                          	 t        j&                  |       |rt        j&                  |       |j>                  jA                         }|j	                          |S # 1 sw Y   xxY w# t(        $ r Y w xY w# t(        $ r Y Tw xY w# 	 t        j&                  |       |rt        j&                  |       w w # t(        $ r Y w w xY wxY w)z!Render an image using Ghostscriptr   r   g      R@      Nnamewbi  pngalphappmrawr   z-qz-g%dx%dz-r%fx%fz-dBATCHz	-dNOPAUSEz-dSAFERz	-sDEVICE=z-sOutputFile=z-c z
 translatez-fshowpagez%Unable to locate Ghostscript on pathsr   )startupinfo)!inttempfilemkstemposclosehasattrpathexistsr   openseekioSEEK_ENDtellreadminlenwriter   unlinkr   r   r   r   r   STARTUPINFOdwFlagsSTARTF_USESHOWWINDOWr   r   loadimcopy)tilesizefpscaletransparencydecoderoffsetdatalengthbboxresout_fdoutfileinfile_tempinfilein_fdffsize
lengthfilesdevicecommandmsgr#   out_imr:   s                             r   GhostscriptrT   A   sN    #'q'GT64LFD JO!E GeOT!Wu_-D 	tAw$q'DG+,tAw$q'DG+,C
 &&(OFGHHVKr6rww~~bgg6%--/{

 +t$ 	GGAr{{#GGIE GGAJJq.GGC
J78c!f$

 q.	 (ZXF 	DC
F8
y!G8*AtAwhZz*#G( $ 		'"IIk* :C#,&
<<""5)$002K:#B#BBg;?G$	IIg		+& 
	B
LLNIM	 	X  *  				IIg		+&  		sb   BL,L BL/ +,L  L	LL 	L,+L,/M.1,MM.	M+(M.*M++M.c                   :    e Zd ZdZd Zej                  fdZd Zy)PSFilez
    Wrapper for bytesio object that treats either CR or LF as end of line.
    This class is no longer used internally, but kept for backwards compatibility.
    c                 <    t        ddd       || _        d | _        y )NrV      zSIf you need the functionality of this class you will need to implement it yourself.)action)r   r>   char)selfr>   s     r   __init__zPSFile.__init__   s%    6	
 	r   c                 J    d | _         | j                  j                  ||       y N)rZ   r>   r-   )r[   rB   whences      r   r-   zPSFile.seek   s    	VV$r   c                    | j                   xs dg}d | _         | j                  j                  d      }|dvrGt        |      r<|j	                  |       | j                  j                  d      }|dvrt        |      r<| j                  j                  d      | _         | j                   dv rd | _         dj                  |      j                  d      S )Nr   r      
latin-1)rZ   r>   r1   r3   appendjoindecode)r[   rO   cs      r   readlinezPSFile.readline   s    YY#	GGLLOSVHHQKQA SV GGLLO	99DIxx{!!),,r   N)	__name__
__module____qualname____doc__r\   r.   SEEK_SETr-   rg   r   r   r   rV   rV      s    
 #%++ %-r   rV   c                 R    | d d dk(  xs t        |       dk\  xr t        |       dk(  S )N      %!PS   P )r3   i32)prefixs    r   _acceptrs      s/    "1: TS[A%5%S#f+:STr   c                   @    e Zd ZdZdZdZdddddZd	 Zd
 ZddZ	d Z
y)EpsImageFilez.EPS File Parser for the Python Imaging LibraryEPSzEncapsulated PostscriptLLABRGBCMYK)r   r   r   rn   c                      j                   j                        \  }} j                  j                  |       d _        d  _        t        d      }t        |      }d}d} fd}	  j                  j                  d      }|dk(  r|dk(  rJn|dv r|dk(  r?2|dk\  r+|d   t        d	      k(  rd
}	t        |	      |r	 |        d}d}|d   ||<   |dz  }p|rD|d   t        d	      k7  s|d d dk(  r
 |        d}t        |d | d      }
	 t        j                  |
      }|r|j                  dd      \  }}| j                   |<   |dk(  rA	 |j                         D cg c]  }t#        t%        |             }}|d   |d   z
  |d   |d   z
  f _        dd j&                  z   |||ffg _        nt,        j                  |
      }|r<|j                  d      }|d d dk(  r|dd   j                   d<   nd j                   |<   n|
d   d	k(  rn~d}	t/        |	      |d d dk(  ri|d| j                  d d      }|d d D cg c]  }t#        |       c}\  }}}}|dk(  rd _        n|dk(  r	  j0                  |    _        nn||f _        y d}+ |         j                  sd}	t/        |	      y # t        j                  $ r}d
}	t        |	      |d }~ww xY wc c}w # t*        $ r Y ^w xY wc c}w # t2        $ r Y nw xY w)Nry      r   Tc                  r    dj                   vrd} t        |       dj                   vrd} t        |       y )NPS-Adobez'EPS header missing "%!PS-Adobe" commentBoundingBoxz*EPS header missing "%%BoundingBox" comment)infoSyntaxError)rR   r[   s    r   check_required_header_commentsz:EpsImageFile._open.<locals>.check_required_header_comments   s@    *?!#&&DII-B!#&& .r   r   r   ra   %not an EPS fileF   s   %%EndCommentsrb   r   r   r   epsr   r      r~   	    zbad EPS headerrX   s   %ImageData:   rn   1z!cannot determine EPS bounding box)_find_offsetr>   r-   mode_size	bytearray
memoryviewr1   ordr   strsplitmatchreerrorgroupr   r$   floatr=   r<   	Exceptionfieldr   mode_map
ValueError)r[   rD   rB   byte_arrbytes_mv
bytes_readreading_commentsr   byterR   rO   mekviboximage_data_valuesvaluecolumnsrows	bit_depthmode_ids   `                      r   _openzEpsImageFile._open   sp   ,,TWW5 	V	
S>h'
	' 77<<?Ds{? ? $  {c#h./)#..+:</4, &'
'+Aw$a
 A;#c(*hsm?O.O24',$*-y92AA
 771a=DAq#$DIIaLM)
! ;<'')"DQ3uQx="DC"D),Q#a&#a&3q6/)IDJ!&(:FVSM R)DI AAGGAJRa5J.45abEDIIj1+-DIIaL1 .%cl*#2.0 %-R
$;$A$A$$J!,=bq,A5#(CJ51y' > #DI!^$(MM'$:	 $d]
Jc f 	'(zz5C#, M xx 2+C%c*12 #E
  ) ! !@5 & sT   J5 K# "K=8K# K20K7 5KKKK# #	K/.K/7	LLc                 (   |j                  d      }|dk(  r6|j                  dt        j                         |j	                         }d}||fS t        |      dk(  r,|j                  d      }t        |      }t        |d      }||fS d}t        |      )Nrn   ro   r   rp   r   r   )r1   r-   r.   r/   r0   rq   r   )r[   r>   rO   rD   rB   rR   s         r   r   zEpsImageFile._find_offseto  s    GGAJ<GGAr{{#WWYFF v~ Vz! 
AVFAYF
 v~ $Cc""r   c                 6   | j                   rot        | j                   | j                  | j                  ||      | _        | j                  j
                  | _        | j                  j                  | _        g | _         t        j                  j                  |       S r^   )	r<   rT   r=   r>   r:   r   r   r   r9   )r[   r?   r@   s      r   r9   zEpsImageFile.load  sc    99!$))TYYUDGDIDJDI{{%%r   c                      y r^   r   )r[   argskwargss      r   	load_seekzEpsImageFile.load_seek  s     	r   Nr   F)rh   ri   rj   rk   formatformat_descriptionr   r   r   r9   r   r   r   r   ru   ru      s4    8F25Uv6HM^.&r   ru   c                    | j                          | j                  dk(  rd}n1| j                  dk(  rd}n| j                  dk(  rd}nd}t        |      |r|j                  d       |j                  d	       |j                  d
| j                  z         |j                  d       |j                  d       |j                  d       |j                  d| j                  z         |j                  d|z         |j                  d       |j                  d       |j                  d| j                  d   |d   z  z         |j                  d| j                  z         |j                  d| j                  z         |j                  d| j                  d   | j                  d   | j                  d   fz         |j                  d       |j                  |d   dz          t        |d      r|j                          t        j                  | |dd| j                  z   ddfg       |j                  d       |j                  d        t        |d      r|j                          yy)!z*EPS Writer for the Python Imaging Library.rw   )r   r   s   imagery   )r   r   s   false 3 colorimagerz   )r   rn   s   false 4 colorimagezimage mode is not supporteds   %!PS-Adobe-3.0 EPSF-3.0
s   %%Creator: PIL 0.1 EpsEncode
s   %%%%BoundingBox: 0 0 %d %d
s   %%Pages: 1
s   %%EndComments
s   %%Page: 1 1
s   %%ImageData: %d %d s   %d %d 0 1 1 "%s"
s   gsave
s   10 dict begin
s   /buf %d string def
r   r   s   %d %d scale
s   %d %d 8
s   [%d 0 0 -%d 0 %d]
s+   { currentfile buf readhexstring pop } bind
r      
flushr   r   Ns   
%%%%EndBinary
s   grestore end
)	r9   r   r   r4   r=   r)   r   r   _save)r:   r>   filenamer   operatorrR   s         r   r   r     s    GGI 
ww#~#	E	0	F	0+o

-.
23
0277:;
!
#$
!"
'"''12
&12 HHZHH HH$
Xa[(@ABHH'(HH\BGG#$HH#rwwqz2771:rwwqz&JJKHH<=HHXa[5 !r7

OOBeVbgg%5q$?@AHH!"HHr7

 r   z.psz.epszapplication/postscriptr   )r   )"r.   r'   r   r   r   r%   r   r   r   _binaryr   rq   
_deprecater   compiler   r   r   r   r   shutilbinarywhichr   rT   rV   rs   ru   r   register_openr   register_saveregister_extensionsregister_mimer   r   r   <module>r      s3  . 
 	 	  
   ! !
 	

23

,- <<5!0 "6<<+ &"
 "
fR"- "-JUz9&& z@.h   L''w ?   L'' /   ,--v ?   L'')A Br   