o �J�h�%�@s�ddlmZddlZddlZddlZddlZddlmZmZddl m Z m Z m Z m Z mZmZddd�Zd dd�Z d!d"dd�Ze �de�e �de�e �dd�e �dd�dS)#�)� annotationsN)�IO�Any�)�Image� ImageFile� ImageSequence� PdfParser� __version__�features�im� Image.Image�fp� IO[bytes]�filename� str | bytes�return�NonecCst|||dd�dS)NT)�save_all)�_save)r rr�r�PC:\pinokio\api\whisper-webui.git\app\env\lib\site-packages\PIL\PdfImagePlugin.py� _save_all+sr� existing_pdf�PdfParser.PdfParser� image_refs�!list[PdfParser.IndirectReference]�'tuple[PdfParser.IndirectReference, str]c Cs�d}d}|j\}}ddi}|jdkr8t�d�r,d} d|d<t�t�dd||d ��g�}nd } t�d �|d <d } n�|jdkrId } t�d �|d <d } n�|jdkrWd} d } d|d<n�|jdkr�d} |��} | dushJ�t�d�t�d�t | �ddt� | �g|d <d} d|j vr�|� d�� d�} i| _t| |||�d} | |d<n>|jdkr�d } t�d�|d <d} n-|jdkr�d} d} d|d<n|jdkr�d } t�d �|d <d} gd!�}n d"|j��}t|��t��}| dkr�t�||t�d#d$|jd|j�g�nA| dk�r|j|d%d&t�|d�|d'�n+| d k�rtjd(|||�n| dk�r/|d=tjd)|||�n d*| �d+�}t|��|��}| dk�rR|dd�}t�t�| �g�}nt�| �}|�d�} |j| f|t�d,�t�d-�|||||d.�|��| | fS)/NZBitsPerComponent��1�libtiffZCCITTFaxDecoder�����T)�KZBlackIs1ZColumnsZRowsZ DCTDecodeZ DeviceGray� ColorSpaceZImageB�L�LAZ JPXDecodeZ SMaskInData�PZASCIIHexDecode�IndexedZ DeviceRGB�ZImageI� transparency�ArZSMask�RGBZImageC�RGBA�CMYKZ DeviceCMYK)rrrrrrrrzcannot save mode �hex)rr�TIFF�group4)� compression� strip_size�JPEG�JPEG2000zunsupported PDF filter (�)�XObjectr)�stream�TypeZSubtypeZWidthZHeight�FilterZDecodeZ DecodeParms)�size�moder �checkr ZPdfArray�PdfDict�PdfName� getpalette�lenZ PdfBinary�info�convert� getchannel� encoderinfo� _write_image� ValueError�io�BytesIOrr�_Tile�save�math�ceilr�SAVE�getvalue�pop� write_obj)r rrr�params�decode�width�height�dict_objZ decode_filter�procset�palette�smask� image_ref�msg�opr7�filterrrrrE3s�    ����      � �      & �       �� � rEFr�boolc Cs&|j�dd�}t|t�r|��n|}|rtj||dd�}ntj||dd�}|j�d�}|r6|d}|d} n |j�d d �}} |rCdn tj�tj� |��dddddd|rWdnt � �|r^dnt � �d �} | � �D]"\} } | |jvrw|j�| �n| } | r�| |j | d��| dd�<qh|��|��|��|�d t�d ��|g}|r�|j�dg�}|D] }|j��|_|�|�q�d}g}g}g}|D]I}d}|r�t|dd�}||7}t|�D]4}|�|�d��|jdkr�d|j vr�|�|�d��|�|�d��|�|�d��|j�|d�q�q�|��d}|D]f}|�r"t�|�n|g}|D]U}t||||�\}}|j||tj t�!d�t�!|�gtj |d�d�dd|j"d ||j#d | g||d�d|j"d ||j#d | f}|j$|||d�|d7}�q'�q|�%�t&|d��r�|�'�|�(�dS)N�appendFzr+b)�frr;zw+b�dpirr� resolutiongR@)�title�author�subject�keywordsZcreatorZproducerZ creationDateZmodDatezcreated by Pillow z PDF driver� append_images�n_framesr&r)r!�PDF)�image)ZProcSetr6)Z ResourcesZMediaBoxZContentssq %f 0 0 %f 0 0 cm /image Do Q )r7�flush))rD�get� isinstance�bytesrRr �os�path�splitext�basename�time�gmtime�itemsrA�upper�loadZ start_writingZ write_headerZ write_commentr �copyr^�getattr�rangeZnext_object_idr;�pagesZ write_catalogr�IteratorrEZ write_pager=r>rSrTrPZwrite_xref_and_trailer�hasattrrj�close)r rrrZ is_appendingZ filename_strrr`� x_resolution� y_resolutionrA�k�default�v�imsrfZ append_imZnumber_of_pagesrZ page_refsZ contents_refsZim_number_of_pages�iZ page_numberZ im_sequenceZim_pagesrYrVZ page_contentsrrrr�s�  � �    � � �  ��  � �#  rrhz.pdfzapplication/pdf)r r rrrrrr) r r rrrrrrrr)F) r r rrrrrr]rr)� __future__rrGrKrnrr�typingrr�rrrr r r rrEr� register_save�register_save_all�register_extension� register_mimerrrr�<module>s    � z  
Memory