
    g"                    
   d dl mZ d dlZd dlZd dlZd dlZd dlmZ ddlm	Z	m
Z
mZmZmZmZ ddZd ZddZ e	j$                  d	e        e	j&                  d	e        e	j(                  d	d
        e	j*                  d	d       y)    )annotationsN)IO   )Image	ImageFileImageSequence	PdfParser__version__featuresc                "    t        | ||d       y )NT)save_all)_save)imfpfilenames      G/var/www/openai/venv/lib/python3.12/site-packages/PIL/PdfImagePlugin.py	_save_allr   +   s    	"b(T*    c                V   d }d }| j                   \  }}ddi}| j                  dk(  rit        j                  d      r6d}	d|d<   t	        j
                  t	        j                  dd||d	      g      }nd
}	t	        j                  d      |d<   d}
n| j                  dk(  rd
}	t	        j                  d      |d<   d}
ni| j                  dk(  rd}	d}
d|d<   nO| j                  dk(  rd}	| j                         }t	        j                  d      t	        j                  d      t        |      dz  dz
  t	        j                  |      g|d<   d}
d| j                  v r| j                  d      j                  d      }i |_        t        ||||      d   }||d<   n| j                  dk(  rd
}	t	        j                  d      |d<   d}
nc| j                  dk(  r
d}	d}
d|d<   nJ| j                  dk(  r!d
}	t	        j                  d       |d<   d}
g d!}nd"| j                   }t!        |      t#        j$                         }|	dk(  r4t'        j(                  | |d#d$| j                   z   d| j                  fg       n|	dk(  r/| j+                  |d%d&t-        j.                  |dz        |z  '       nT|	d
k(  rt1        j2                  d(   | ||       n4|	dk(  r|d= t1        j2                  d)   | ||       nd*|	 d+}t!        |      |j5                         }|	dk(  r/|dd  }t	        j
                  t	        j                  |	      g      }	nt	        j                  |	      }	|j7                  d      } |j8                  |f|t	        j                  d,      t	        j                  d-      |||	||d.| ||
fS )/NBitsPerComponent   1libtiffCCITTFaxDecoder   T)KBlackIs1ColumnsRows	DCTDecode
DeviceGray
ColorSpaceImageBLLA	JPXDecodeSMaskInDataPASCIIHexDecodeIndexed	DeviceRGB   ImageItransparencyAr   SMaskRGBImageCRGBACMYK
DeviceCMYK)r   r   r   r   r   r   r   r   zcannot save mode hex)r   r   TIFFgroup4)compression
strip_sizeJPEGJPEG2000zunsupported PDF filter ()XObjectr   )streamTypeSubtypeWidthHeightFilterDecodeDecodeParms)sizemoder   checkr	   PdfArrayPdfDictPdfName
getpalettelen	PdfBinaryinfoconvert
getchannelencoderinfo_write_image
ValueErrorioBytesIOr   r   savemathceilr   SAVEgetvaluepop	write_obj)r   r   existing_pdf
image_refsparamsdecodewidthheightdict_objfilterprocsetpalettesmask	image_refmsgopr?   s                    r   rT   rT   3   s   
 FF
 GGME6"A&H	ww#~>>)$%F+,H'(''%%!#(,',$*		F !F!*!2!2<!@	C!*!2!2<!@	D"#	C!--/i(k*LA!(	"
 RWW$JJt$//4E "E$UHlJOPQRI )HW	E	!*!2!2;!?	F	"#	F	!*!2!2<!@)!"''+o
 
B!!B%"'')91bgg!F GH	#	#
 yy+f4 	 	
 
;	

62r8,	;	'(

:r2x0(2o[[]F!!##Y%6%6v%>$?@""6*q!ILy)!!'*  gr   c                   | j                   j                  dd      }|rt        j                  ||d      }nt        j                  ||d      }| j                   j                  d      }|r|d   }|d   }n| j                   j                  d	d
      x}}|rd n>t        j                  j                  t        j                  j                  |            d   d d d d d |rd nt        j                         |rd nt        j                         d}	|	j                         D ]Y  \  }
}|
| j                   v r| j                   j                  |
      n|}|s4||j                  |
d   j                         |
dd  z   <   [ | j                          |j                          |j                          |j                  dt          d       | g}|rS| j                   j                  dg       }|D ]2  }| j                   j#                         |_         |j%                  |       4 d}g }g }g }|D ]  } d}|r	 | j&                  }||z  }t+        |      D ]  }|j%                  |j-                  d             | j.                  dk(  r.d| j                  v r |j%                  |j-                  d             |j%                  |j-                  d             |j%                  |j-                  d             |j0                  j%                  |d            |j3                          d}|D ]  }|rt5        j6                  |      n|g}|D ]  } t9        | |||      \  }}|j;                  ||   t        j<                  t        j>                  d      t        j>                  |      gt        j<                  |            dd| j@                  d
z  |z  | jB                  d
z  |z  g||          d| j@                  d
z  |z  | jB                  d
z  |z  fz  }|jE                  ||   |       |dz  } 
 |jG                          tI        |d      r|jK                          |jM                          y # t(        $ r Y :w xY w)NappendFzr+b)fr   rH   zw+bdpir   r   
resolutiong      R@)titleauthorsubjectkeywordscreatorproducercreationDatemodDatezcreated by Pillow z PDF driverappend_imagesr(   r.   r   PDF)image)ProcSetr>   )	ResourcesMediaBoxContentss   q %f 0 0 %f 0 0 cm /image Do Q
)r?   flush)'rS   getr	   ospathsplitextbasenametimegmtimeitemsrP   upperloadstart_writingwrite_headerwrite_commentr
   copyrn   n_framesAttributeErrorrangenext_object_idrH   pageswrite_catalogr   IteratorrT   
write_pagerK   rL   rc   rd   r^   write_xref_and_trailerhasattrr   close)r   r   r   r   is_appendingr_   rp   x_resolutiony_resolutionrP   kdefaultvimsrz   	append_imnumber_of_pagesr`   	page_refscontents_refsim_number_of_pagesipage_numberim_sequenceim_pagesrj   rg   page_contentss                               r   r   r      s0   >>%%h6L **R(O **R(O
..

U
#C
1v1v&(nn&8&8t&LL| !Dbgg&6&6rww7G7G7Q&RST&U ,$++-'4T[[]D jjl
7%&"..%8BNNq!g67LadjjlQqrU23 # GGI !3K=LM $C**?B?&I$&NN$7$7$9I!JJy! ' OJIM%'[["
 	--)*Al99!<=ww#~.BGG";!!,"="=a"@A\88;<  !<!<Q!?@%%im4 + *  K:B=))+6B!-b(L*!UIw
 ##+&#++&..u5y7H7H7QR%--I>
 HHtOl2II$|3	 '{3 $ $ @4,.		D </C M
 ""=#=m"T1K?  J '')r7

w "  s   -Q''	Q43Q4r{   z.pdfzapplication/pdf)r   zImage.Imager   z	IO[bytes]r   zstr | bytesreturnNone)F)
__future__r   rV   rY   r   r   typingr    r   r   r   r	   r
   r   r   rT   r   register_saveregister_save_allregister_extensionregister_mime r   r   <module>r      s}   , # 	  	   O O+{|st   E5 !   y )    '   E, -r   