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   X/home/www/facesmatcher.com/frenv_anti/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rd}	|  }|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rd
}	td|d< d}
n-| jdkrd}	d}
d|d< n| jdkrd
}	td |d< d}
g d!}n
d"| j }t|t }|	dkrt| |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 )/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   r9   3   s   













&






r9   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  |_ || qd}g }g }g }|D ]I} d}|rt| dd}||7 }t|D ]4}||d | jdkrd| jv r||d ||d ||d |j|d  qq|  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   r1   zw+bdpir   r   
resolutiong      R@)titleZ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))r8   get
isinstancebytesrD   r	   ospathsplitextbasenametimegmtimeitemsr6   upperloadZstart_writingZwrite_headerZwrite_commentr
   copyrO   getattrrangeZnext_object_idr1   ZpagesZwrite_catalogr   Iteratorr9   Z
write_pager3   r4   rE   rF   rB   Zwrite_xref_and_trailerhasattrrY   close)r   r   r   r   Zis_appendingZfilename_strr   rQ   Zx_resolutionZy_resolutionr6   kdefaultvZimsrV   Z	append_imZnumber_of_pagesr   Z	page_refsZcontents_refsZim_number_of_pagesiZpage_numberZim_sequenceZim_pagesrJ   rH   Zpage_contentsr   r   r   r      s   

#r   rW   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   rN   r   r   )
__future__r   r;   r>   r]   ra   typingr   r    r   r   r   r	   r
   r   r   r9   r   Zregister_saveZregister_save_allZregister_extensionZregister_mimer   r   r   r   <module>   s     

 z