+
    bIi                         R t Rt^ RIt^ RIt^ RIHt ^ RIHt ^ RIHt ^ RIH	t	 ^ RI
HtHt ^ RIHt  ! R	 R
4      t]R8X  d   ]P"                  P%                  ]P"                  P'                  ]P(                  4      RR4      t]P"                  P-                  ]4      '       g   Q R4       h^]n        ]! ]^d^d4      t]P2                  ! 4       t]! R]P8                  4       ]! ]P;                  ]4      4       R# R# )z3.3.0z@
Image functionality sliced out of canvas.py for generalization
N)	rl_config)pdfutils)pdfdoc)isStr)fp_strasciiBase85Encode)aspectRatioFixc                   f   a  ] tR t^t o RtRR ltR tR tR tR t	R t
RR	 ltRR
 ltR tRtV tR# )PDFImagezWrapper around different "image sources".  You can make images
from a PIL Image object, a filename (in which case it uses PIL),
an image we previously cached (optimisation, hardly used these
days) or a JPEG (which PDF supports natively).Nc                    Wn         W n        W0n        W@n        WPn        R V n        W`n        RV n        ^V n        . V n	        R V n
        V P                  4        R # )N	DeviceRGB)imagexywidthheightfilenameimageCaching
colorSpacebitsPerComponentfilterssourcegetImageData)selfr   r   r   r   r   cachings   &&&&&&&ڃC:\Users\petid\OneDrive\Desktop\Maestro\MAESTRO CLAUDE\MAESTRO\maestro-backend\venv\Lib\site-packages\reportlab/pdfgen/pdfimages.py__init__PDFImage.__init__   sS    

# & !    c                    \        V P                  R 4      p V P                  V4      pVP                  4        V#   TP                  4        i ; i)rb)openr   _jpg_imagedataclose)r   fpresults   &  r   jpg_imagedataPDFImage.jpg_imagedata*   sD     $**d#	((,FHHJ HHJs	   ; Ac                   \         P                  ! V4      pR V n        V^ ,          V^,          rCV^,          ^8X  d   RpMV^,          ^8X  d   RpMRpVP                  ^ 4       . pTP	                  RY4T\
        P                  ;'       d    R;'       g    R3,          4       VP                  4       p\
        P                  '       d   \        V4      p\         P                  ! Wv4       VP	                  R4       WcV3# )JPEG
DeviceGrayr   
DeviceCMYKz,BI /W %d /H %d /BPC 8 /CS /%s /F [%s/DCT] ID/A85  EI)
r   readJPEGInfor   seekappendr   useA85readr   _chunker)r   	imageFileinfoimgwidth	imgheightr   	imagedatadatas   &&      r   r"   PDFImage._jpg_imagedata4   s    $$Y/"1gtAw)7a<%J!W\$J%Jq	G8`jlul|l|  mI  mI  BI  mO  mO  MO  KP  P  	Q~~$T*D$)Y//r   c                   V P                   p\        P                  ! V4      '       g   \        P                  ! V4       \        P
                  P                  V4      ^ ,          \        P                  ;'       d    R;'       g    R,           p\        VR4      P                  4       p\        \        \        P                  V4      4      pV# )    z.a85z.binr    )r   r   cachedImageExistscacheImageFileospathsplitextr   r2   r!   	readlineslistmapstrstrip)r   r   
cachednamer9   s   &   r   cache_imagedataPDFImage.cache_imagedataJ   s    

))%00##E* WW%%e,Q/93C3C3N3N3X3XRXY
D)335	SYY	23	r   c                v   ^ RI pV P                  pVP                  R8X  d/   VP                  pVP	                  ^ 4       V P                  V4      # RV n        ^pVP                  R8X  d   TpRp^pMGVP                  R8X  d
   TpRp^p^pM-VP                  R8X  d   TpRp^pMVP                  R	4      pR	p^pVP                  w  rR
YYF\        P                  ;'       d    R;'       g    R3,          .p
\        VR4      '       d   VP                  MVP                  ! 4       pW,          V,          ^,           ^,	          p\        V4      W,          8X  g   Q R4       hVP!                  V4      p\        P                  '       d   \#        V4      p\$        P&                  ! W4       V
P)                  R4       WV	3# )r=   Nr)   PILCMYKr+   1r*   LRGBz,BI /W %d /H %d /BPC %d /CS /%s /F [%s/Fl] IDr,   r-   tobyteszWrong amount of data for imager.   )zlibr   formatr$   r0   r"   r   modeconvertsizer   r2   hasattrrQ   tostringlencompressr   r   r4   r1   )r   rR   r   r$   bpcmyimager   bppr7   r8   r9   raw	rowstrider:   s   &             r   PIL_imagedataPDFImage.PIL_imagedataV   s   

<<xxBGGAJ&&r**::G%JCZZ3G%JCCZZ3G%JCmmE*GJC%ll BXZ]ktk{k{  lH  lH  AH  lN  lN  LN  EO  O  P	 #*')"<"<w'BRBRRU\#%a'!+	3x9..P0PP.}}S!$T*D$)Y//r   c                    V P                   '       g   \        P                  ! V^R7      pMV P                  4       pV^,          P	                  4       p\        V^,          4      p\        V^,          4      pW$V3# )   )returnInMemory)r   r   r?   rI   splitint)r   r   r9   wordsr7   r8   s   &&    r   non_jpg_imagedataPDFImage.non_jpg_imagedata   se        //QGI,,.I!""$uQx=aM	I--r   c                   V P                   p\        V4      '       d\   W n        \        P                  P                  V4      ^,          R9   d    V P                  4       w  r4pM(V P                  V4      w  r4pMV P                  4       w  r4pW0n	        W@n
        WPn        V P                  ;'       g    TV n        V P                  ;'       g    TV n        R#    T P                  T4      w  r4p Lb; i)z1Gets data, height, width - whatever type of imageN)z.jpgz.JPGz.jpegz.JPEG)r   r   r   r@   rA   rB   r&   rh   r`   	imageDatar7   r8   r   r   )r   preserveAspectRatior   r9   r7   r8   s   &&    r   r   PDFImage.getImageData   s    

<<!Mww&q)-OOS595G5G5I2I 261G1G1N.	Y-1-?-?-A*I" "ZZ++8
kk..YS595K5KE5R2Is   C C.c                   V P                   pV P                  pVR8  g   VR8  d   R# \        W#V P                  V P                  WxV P
                  V P                  V4	      w  rV n         V n        pVP                  '       g	   W,           p
VP                  P                  R\        V P                   4      : R\        V P                  W4      : R24       V P                   pV P                  pV P                   F  pVP                  P                  V4       K   	  VP                  P                  R4       V'       d   VP                  WYWV4       V'       d+   VP                  4        F  p\        4       V,          Wm&   K  	  R# )zDraw an Image into the specified rectangle.  If width and
height are omitted, they are calculated from the image size.
Also allow file names as well as images.  This allows a
caching mechanismgư>Fzq z 0 0 z cmQT)r   r   r   r   r   r7   r8   bottomup_coder1   r   rk   drawBoundarykeysvars)r   canvasrl   anchor
anchorAtXYshowBoundaryextraReturnr   r   r   r   scaledlineks   &&&&&&&       r   drawInlineImagePDFImage.drawInlineImage   s4    

:U-;<OW[W]W]^b^d^dejrvrr  AE  AO  AO  PZ  .[*DJt{FAHtzz0BF4;;XYD]^_

NNDLL% #C qv> %%'!% (r   c                f   \         P                  ! 4       pRVR&   RVR&   V P                  VR&   V P                  VR&   ^VR&   \         P                  ! V P
                  4      VR&   R	P                  V P                  ^R 4      R	,           p\         P                  ! W#R
7      pVP                  V4      # )zlAllow it to be used within pdfdoc framework.  This only
defines how it is stored, not how it is drawn later.z/XObjectTypez/ImageSubtypeWidthHeightBitsPerComponent
ColorSpace
)
dictionarycontent)
r   PDFDictionaryr   r   PDFNamer   joinrk   	PDFStreamrS   )r   documentdictr   strms   &&   r   rS   PDFImage.format   s     ##%!V"Y

WX#$ #^^DOO<\))DNN1R01D84A{{8$$r   )r   r   r   r   r   r   r   rk   r8   r7   r   r   r   r   )NNr=   )F)FswFFN)__name__
__module____qualname____firstlineno____doc__r   r&   r"   rI   r`   rh   r   r}   rS   __static_attributes____classdictcell__)__classdict__s   @r   r
   r
      s=     6
"0,
,0\./*4% %r   r
   __main__testzpythonpowered.gifzimage not foundzsource=)__version__r   r@   	reportlabr   reportlab.pdfbaser   r   reportlab.lib.utilsr   reportlab.lib.rl_accelr   r   reportlab.lib.boxstuffr   r
   r   rA   r   dirname__file__srcfileisfile
LongFormatimgPDFDocumentdocprintr   rS    r   r   <module>r      s    	 
   & $ % < 1w% w%r Zggll	 2 23#G
 77>>'""5$55"F
7C
%C



C	)CJJ	#**S/ r   