o
    üÞh…$  ã                   @  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 ddl	m
Z
mZmZmZmZmZ ddd„Zd dd„Z	d!d"dd„Ze
 de¡ e
 de¡ e
 dd¡ e
 dd¡ dS )#é    )ÚannotationsN)ÚIOÚAnyé   )Ú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   úR/var/www/html/premium_crap/venv/lib/python3.10/site-packages/PIL/PdfImagePlugin.pyÚ	_save_all+   s   r   Úexisting_pdfúPdfParser.PdfParserÚ
image_refsú!list[PdfParser.IndirectReference]ú'tuple[PdfParser.IndirectReference, str]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}	|  ¡ }|d ushJ ‚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 | |t d#d$| j  d| j¡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�rR|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   Ú_TileÚsaveÚmathÚceilr   ÚSAVEÚgetvalueÚpopÚ	write_obj)r   r   r   r   ÚparamsÚdecodeÚwidthÚheightÚdict_objÚdecode_filterÚprocsetÚpaletteÚsmaskÚ	image_refÚmsgÚoprG   Úfilterr   r   r   r\   3   sÄ   



üÿÿÿ



ü
€




&
û




ÿ÷
ör\   Fr   Úboolc              
   C  s&  | j  dd¡}t|tƒr| ¡ n|}|rtj||dd�}ntj||dd�}| j  d¡}|r6|d }|d }	n	| j  d	d
¡ }}	|rCd ntj tj 	|¡¡d d d d d d |rWd nt
 ¡ |r^d nt
 ¡ dœ}
|
 ¡ D ]"\}}|| j v rw| j  |¡n|}|rŠ||j|d  ¡ |dd …  < qh|  ¡  | ¡  | ¡  | dt› d�¡ | g}|r¼| j  dg ¡}|D ]}| j  ¡ |_ | |¡ q®d}g }g }g }|D ]I} d}|rÒt| ddƒ}||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   rP   zw+bÚdpir   r   Ú
resolutiong      R@)ÚtitleÚauthorÚsubjectÚkeywordsÚcreatorÚproducerÚcreationDateÚmodDatezcreated by Pillow z PDF driverÚappend_imagesÚn_framesr0   r6   r#   ÚPDF)Úimage)ÚProcSetrF   )Ú	ResourcesÚMediaBoxÚContentss   q %f 0 0 %f 0 0 cm /image Do Q
)rG   Úflush))r[   ÚgetÚ
isinstanceÚbytesri   r	   ÚosÚpathÚsplitextÚbasenameÚtimeÚgmtimeÚitemsrX   ÚupperÚloadÚstart_writingÚwrite_headerÚwrite_commentr
   Úcopyrv   ÚgetattrÚrangeÚnext_object_idrP   ÚpagesÚwrite_catalogr   ÚIteratorr\   Ú
write_pagerS   rT   rj   rk   rg   Úwrite_xref_and_trailerÚhasattrrŠ   Úclose)r   r   r   r   Úis_appendingÚfilename_strr   rx   Úx_resolutionÚy_resolutionrX   ÚkÚdefaultÚvÚimsr‚   Ú	append_imÚnumber_of_pagesr   Ú	page_refsÚcontents_refsÚim_number_of_pagesÚiÚpage_numberÚim_sequenceÚim_pagesrq   rn   Úpage_contentsr   r   r   r   ¸   s¤   
ö€ùÿ
þüôþá#r   r„   z.pdfzapplication/pdf)r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )F)
r   r   r   r   r   r   r   ru   r   r   )Ú
__future__r   r^   rb   rŽ   r’   Útypingr   r   Ú r   r   r   r	   r
   r   r   r\   r   Úregister_saveÚregister_save_allÚregister_extensionÚregister_mimer   r   r   r   Ú<module>   s     

 ÿz