a
    ç´«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mZ ddl	m
Z
mZmZmZmZmZ dddd	d
œdd„Zddddddœdd„Zddddd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__ÚfeatureszImage.Imagez	IO[bytes]zstr | bytesÚNone)ÚimÚfpÚfilenameÚreturnc                 C  s   t | ||dd� d S )NT)Úsave_all)Ú_save)r   r   r   © r   úQ/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/PIL/PdfImagePlugin.pyÚ	_save_all+   s    r   zPdfParser.PdfParserz!list[PdfParser.IndirectReference]z'tuple[PdfParser.IndirectReference, str])r   r   Úexisting_pdfÚ
image_refsr   c                 C  s  d }d }| j \}}ddi}| jdkrrt d¡rXd}	d|d< t t dd||d	œ¡g¡}nd
}	t d¡|d< d}
�nX| jdkr–d
}	t d¡|d< d}
�n4| jdkr´d}	d}
d|d< �n| jdk�rHd}	|  ¡ }|d usØJ ‚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�rld
}	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¡ n‚|	dk�r.| j|d%d&t |d ¡| d'� nV|	d
k�rLtjd( | ||ƒ n8|	dk�rp|d= tjd) | ||ƒ nd*|	› d+�}t|ƒ‚| ¡ }|	dk�r¶|dd … }t t |	¡g¡}n
t |	¡}| d¡}|j|f|t d,¡t d-¡|||||d.œ|¤Ž ||
fS )/NZBitsPerComponenté   Ú1ZlibtiffZCCITTFaxDecoder   éÿÿÿÿT)ÚKZBlackIs1ÚColumnsZRowsZ	DCTDecodeZ
DeviceGrayZ
ColorSpaceZImageBÚLZLAZ	JPXDecodeZSMaskInDataÚPZASCIIHexDecodeZIndexedZ	DeviceRGBé   ZImageIÚtransparencyÚAr   ZSMaskÚRGBZImageCZRGBAZCMYKZ
DeviceCMYK)r   r   r   r   r   r   r   r   zcannot save mode Úhex)r   r   ZTIFFZgroup4)ÚcompressionZ
strip_sizeZJPEGZJPEG2000zunsupported PDF filter (ú)ÚXObjectr   )ÚstreamÚTypeZSubtypeZWidthZHeightÚFilterZDecodeZDecodeParms)ÚsizeÚmoder   Úcheckr	   ZPdfArrayÚPdfDictÚPdfNameZ
getpaletteÚlenZ	PdfBinaryÚinfoÚconvertZ
getchannelÚencoderinfoÚ_write_imageÚ
ValueErrorÚioÚBytesIOr   r   Z_TileÚsaveÚmathÚceilr   ZSAVEÚgetvalueÚpopÚ	write_obj)r   r   r   r   ÚparamsÚdecodeÚwidthÚheightÚdict_objZdecode_filterÚprocsetÚpaletteZsmaskÚ	image_refÚmsgÚopr'   Úfilterr   r   r   r3   3   sÂ    



üÿÿÿ

ü



&
û




ÿ÷
ör3   FÚbool)r   r   r   r   r   c              
   C  s4  | j  dd¡}t|tƒr | ¡ n|}|r:tj||dd�}ntj||dd�}| j  d¡}|rl|d }|d }	n| j  d	d
¡ }}	|r†d ntj tj 	|¡¡d d d d d d |r®d nt
 ¡ |r¼d nt
 ¡ dœ}
|
 ¡ D ]D\}}|| j v rî| j  |¡n|}|rÐ||j|d  ¡ |dd …  < qÐ|  ¡  | ¡  | ¡  | dt› d�¡ | g}|�r|| j  dg ¡}|D ]}| j  ¡ |_ | |¡ �q^d}g }g }g }|D ]œ} d}|�rªt| ddƒ}||7 }t|ƒD ]n}| | d¡¡ | jdk�röd| jv �rö| | d¡¡ | | d¡¡ | | d¡¡ |j |d ¡ �qº�q�| ¡  d}|D ]Ì}|�rRt |¡n|g}|D ]ª} 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   r+   zw+bÚdpir   r   Ú
resolutiong      R@)ÚtitleÚauthorÚsubjectÚkeywordsZcreatorZproducerZcreationDateZmodDatezcreated by Pillow z PDF driverÚappend_imagesZn_framesr   r    r   ÚPDF)Úimage)ZProcSetr&   )Z	ResourcesZMediaBoxZContentss   q %f 0 0 %f 0 0 cm /image Do Q
)r'   Úflush))r2   ÚgetÚ
isinstanceÚbytesr>   r	   ÚosÚpathÚsplitextÚbasenameÚtimeÚgmtimeÚitemsr0   ÚupperÚloadZstart_writingZwrite_headerZwrite_commentr
   ÚcopyrI   ÚgetattrÚrangeZnext_object_idr+   ZpagesZwrite_catalogr   ÚIteratorr3   Z
write_pager-   r.   r?   r@   r<   Zwrite_xref_and_trailerÚhasattrrT   Úclose)r   r   r   r   Zis_appendingZfilename_strr   rK   Zx_resolutionZy_resolutionr0   ÚkÚdefaultÚvZimsrQ   Z	append_imZnumber_of_pagesr   Z	page_refsZcontents_refsZim_number_of_pagesÚiZpage_numberZim_sequenceZim_pagesrD   rB   Zpage_contentsr   r   r   r   ¸   sž    
ö ÿ
þüôþr   rR   z.pdfzapplication/pdf)F)Ú
__future__r   r5   r8   rX   r\   Útypingr   r   Ú r   r   r   r	   r
   r   r   r3   r   Zregister_saveZregister_save_allZregister_extensionZregister_mimer   r   r   r   Ú<module>   s      ÿz