o
    ÒèFh‘"  ã                   @  sš   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mZm	Z	m
Z
mZmZ dd„ Zdd„ Zdd
d„Ze de¡ e de¡ e dd¡ e dd¡ dS )é    )ÚannotationsNé   )ÚImageÚ	ImageFileÚImageSequenceÚ	PdfParserÚ__version__Úfeaturesc                 C  s   t | ||dd� d S )NT)Úsave_all)Ú_save)ÚimÚfpÚfilename© r   úK/var/www/html/loop/nvenv/lib/python3.10/site-packages/PIL/PdfImagePlugin.pyÚ	_save_all*   s   r   c                 C  sà  d }d }| j \}}ddi}| jdkr8t d¡r,d}	d|d< t t dd||d	œ¡g¡}nd
}	t d¡|d< d}
nŸ| jdkrId
}	t d¡|d< d}
nŽ| jdkrWd}	d}
d|d< n€| jdkr™d}	|  ¡ }t d¡t d¡t	|ƒd d t 
|¡g|d< d}
d| jv r˜|  d¡ d¡}i |_t||||ƒd }||d< n>| jdkrªd
}	t d¡|d< d}
n-| jdkr¸d}	d}
d|d< n| jdkrÍd
}	t d ¡|d< d}
g d!¢}n
d"| j› �}t|ƒ‚t ¡ }|	dkrðt | |d#d$| j  d| jfg¡ nA|	dk�r| j|d%d&t |d ¡| d'� n+|	d
k�rtjd( | ||ƒ n|	dk�r'|d= tjd) | ||ƒ n
d*|	› d+�}t|ƒ‚| ¡ }|	dk�rJ|dd … }t t |	¡g¡}	nt |	¡}	| d¡}|j|f|t d,¡t 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;   r   r   r   rP   2   sÂ   


üÿÿÿ



ü
€




"
û




ÿ÷
örP   Fc              
   C  s"  | j  dd¡}|rtj||dd�}ntj||dd�}| j  d¡}|r+|d }|d }n	| j  d	d
¡ }}|r8d ntj tj |¡¡d d d d d d |rLd nt ¡ |rSd nt ¡ dœ}	|	 	¡ D ]"\}
}|
| j v rl| j  |
¡n|}|r||j
|
d  ¡ |
dd …  < q]|  ¡  | ¡  | ¡  | dt› d�¡ | g}|r±| j  dg ¡}|D ]}| j  ¡ |_ | |¡ q£d}g }g }g }|D ]R} d}|rÐz| j}W n	 tyÏ   Y nw ||7 }t|ƒD ]4}| | d¡¡ | jdkrôd| j
v rô| | d¡¡ | | d¡¡ | | d¡¡ |j |d ¡ qØq»| ¡  d}|D ]f}|�r t |¡n|g}|D ]U} t| |||ƒ\}}|j|| tjt d¡t |¡gtj|d�d�dd| j d
 | | j!d
 | g|| d� d| j d
 | | j!d
 | f }|j"|| |d� |d7 }�q%�q| #¡  t$|dƒ�r‹| %¡  | &¡  d S )NÚappendFzr+b)Úfr   rD   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)'rO   Úgetr   ÚosÚpathÚsplitextÚbasenameÚtimeÚgmtimeÚitemsrL   ÚupperÚloadÚstart_writingÚwrite_headerÚwrite_commentr   Úcopyri   Ún_framesÚAttributeErrorÚrangeÚnext_object_idrD   ÚpagesÚwrite_catalogr   ÚIteratorrP   Ú
write_pagerG   rH   r_   r`   rZ   Úwrite_xref_and_trailerÚhasattrr|   Úclose)r   r   r   r
   Úis_appendingr[   rk   Úx_resolutionÚy_resolutionrL   ÚkÚdefaultÚvÚimsru   Ú	append_imÚnumber_of_pagesr\   Ú	page_refsÚcontents_refsÚim_number_of_pagesÚiÚpage_numberÚim_sequenceÚim_pagesrf   rc   Úpage_contentsr   r   r   r   °   s¨   
ö€
ýù
þüôþá#r   rv   z.pdfzapplication/pdf)F)Ú
__future__r   rR   rU   r~   r‚   Ú r   r   r   r   r   r	   r   rP   r   Úregister_saveÚregister_save_allÚregister_extensionÚregister_mimer   r   r   r   Ú<module>   s    
~z