o
    Ñ­jÔ"  ã                   @  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 ddlm	Z	m
Z
mZmZmZmZ d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)ÚIOé   )ÚImageÚ	ImageFileÚImageSequenceÚ	PdfParserÚ__version__ÚfeaturesÚimúImage.ImageÚfpú	IO[bytes]Úfilenameústr | bytesÚreturnÚNonec                 C  s   t | ||dd� d S )NT)Úsave_all)Ú_save)r   r   r   © r   úO/var/www/html/CropPilot/venv/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ÚoprA   r   r   r   rV   3   sÂ   


üÿÿÿ



ü
€




"
û




ÿ÷
örV   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   rJ   zw+bÚdpir   r   Ú
resolutiong      R@)ÚtitleÚauthorÚsubjectÚkeywordsÚcreatorÚproducerÚcreationDateÚmodDatezcreated by Pillow z PDF driverÚappend_imagesr*   r0   r   ÚPDF)Úimage)ÚProcSetr@   )Ú	ResourcesÚMediaBoxÚContentss   q %f 0 0 %f 0 0 cm /image Do Q
)rA   Úflush)'rU   Úgetr   ÚosÚpathÚsplitextÚbasenameÚtimeÚgmtimeÚitemsrR   ÚupperÚloadÚstart_writingÚwrite_headerÚwrite_commentr	   Úcopyro   Ún_framesÚAttributeErrorÚrangeÚnext_object_idrJ   ÚpagesÚwrite_catalogr   ÚIteratorrV   Ú
write_pagerM   rN   re   rf   r`   Úwrite_xref_and_trailerÚhasattrr‚   Úclose)r   r   r   r   Úis_appendingra   rq   Úx_resolutionÚy_resolutionrR   ÚkÚdefaultÚvÚimsr{   Ú	append_imÚnumber_of_pagesrb   Ú	page_refsÚcontents_refsÚim_number_of_pagesÚiÚpage_numberÚim_sequenceÚim_pagesrl   ri   Úpage_contentsr   r   r   r   ±   s¨   
ö€
ýù
þüôþá#r   r|   z.pdfzapplication/pdf)r   r   r   r   r   r   r   r   )F)Ú
__future__r   rX   r[   r„   rˆ   Útypingr   Ú r   r   r   r   r	   r
   r   rV   r   Úregister_saveÚregister_save_allÚregister_extensionÚregister_mimer   r   r   r   Ú<module>   s    

~z