Warning: session_start(): Session cannot be started after headers have already been sent in /home/tvrreohg/public_html/manga.php on line 13
3 1øªj±,ã@s¾UdZddlZddlmZddlmZmZmZmZm Z m Z ddl m Z m Z ddlmZddlmZmZdd lmZmZmZmZmZejdd …d(kr¢dd lmZn dd lmZyddlmZmZWnek rÞedƒ‚YnXed)Z e d Z!e"!d*e e#eeefe"e e"ee e$fdœdd„Z%e&ee"e"fe"e&dœdd„Z'e#ee"e"fe&ejdœd d!„Z(ee"e"fe&e e#e"e#eeje#e#e$fd"œd#d$„Z)ee"e"fe&e e#e"eeje#e#e$fd%œd&d'„Z*dS)+z9Code in here is only used by pypdf.filters._xobj_to_imageéN)ÚBytesIO)ÚAnyÚListÚLiteralÚTupleÚUnionÚcasté)Úcheck_if_whitespace_onlyÚlogger_warning)Ú ColorSpaces)ÚEmptyImageDataErrorÚ PdfReadError)Ú ArrayObjectÚDecodedStreamObjectÚEncodedStreamObjectÚIndirectObjectÚ NullObjectééé )Ú TypeAlias)ÚImageÚUnidentifiedImageErrorz]pillow is required to do image extraction. It can be installed via 'pip install pypdf[image]'ÚÚ1ÚRGBÚ2bitsÚ4bitsÚPÚLÚRGBAÚCMYK)Ú color_spaceÚcolor_componentsÚ prev_modeÚdepthÚreturnc Cs|tkrtdƒ‚t|tƒrdSt|tƒr,�nšt|tƒsDtd|ƒ‚�n‚|djdƒrjd|ddd …}�n\|dd kr |d jƒ}tt |d ƒ}|j d dƒ}�n&|ddkrâ|d jƒ}t ||||d ƒ\}}|d krÚd}||fS|ddk�r*|d}t|t ƒ�r |jƒ}t ||||d ƒ\}}|dfS|ddk�rÆ|}t |d ƒ}|d}t|t ƒ�rd|jƒ}|dk�r¨|d k�r¨|d ddk�r¤td|d d›d�tƒd!St ||||d ƒ\}}||fSddddddddœ}|j |ƒ�pút|jƒƒ|�pú|} | | dkfS)"z� Returns Image mode not taking into account mask(transparency) ColorInversion is required (like for some DeviceCMYK) z\Color spaces nested too deep. If required, consider increasing MAX_IMAGE_MODE_NESTING_DEPTH.rFzCannot interpret colorspacerz/Calz/DeviceéNz /ICCBasedr z/Nz /Alternatez/Indexedrr"rz /SeparationrTz/DeviceNz /DeviceCMYKz/BlackzColor z8 converted to Gray. Please share PDF with pypdf dev teamr rrr)Z1bitz /DeviceGrayZpalettez /DeviceRGBz /DeviceCMYKZ2bitZ4bit)rF)rr")r T)ÚMAX_IMAGE_MODE_NESTING_DEPTHrÚ isinstancerÚstrÚlistÚ startswithÚ get_objectrÚintÚgetÚ_get_imagemoderÚlenr Ú__name__Úvalues) r#r$r%r&Z icc_profileÚmode2Ú invert_colorZoriginal_color_spaceZmode_mapÚmode©r8ú:/tmp/pip-build-_d5lkt3n/pypdf/pypdf/_xobj_image_helpers.pyr1'sp             r1)ÚdataÚsizeÚbitsr'c Cs¼d|>d}t|d|dƒ}d}d|}x†t|dƒD]v}|d|krZ|d7}d|}xTt|dƒD]D}|||?|@|||d|<||8}|dkrh|d7}d|}qhWq:Wt|ƒS)Nr ré)Ú bytearrayÚrangeÚbytes) r:r;r<ÚmaskZnbuffZbyÚbitÚyÚxr8r8r9Ú bits2bytews   rE)r7r;r:r'csªytj|||ƒ}Wn’tk r¤}zv|d|d}t|ƒ}|dkrNtdƒ|‚||dkr^|‚|t|ƒ|‰dj‡fdd„|Dƒƒ}tj|||ƒ}WYdd}~XnX|S)Nrr z9Data is 0 bytes, cannot process an image from empty data.ócsg|]}t|ftˆƒƒ‘qSr8)r@r/)Ú.0rD)Úkr8r9ú ˜sz-_extended_image_frombytes..)rÚ frombytesÚ ValueErrorr2r Újoin)r7r;r:ÚimgÚexcZnb_pixZ data_lengthr8)rHr9Ú_extended_image_frombytes‰s  rO)r;r:r7r#ÚcolorsÚ obj_as_textr'cs¦d}d}t|tƒr4|ddkr4dd„|Dƒ\}}} ‰|dkrNd}t||d ƒ}n|d krfd}t||d ƒ}t|||ƒ‰|dk�rDd d lm} tˆttfƒržˆjƒ‰tˆ| ƒr®ˆj ‰tˆt ƒrÀˆj ƒ‰y*d(d)d*d+d,dœt |ddƒd\} } }Wn.t k �rtd|›d�tƒd‰Y�qˆXˆjdk�rìd | } tˆƒ| k�rœtˆƒ| k�rdtd| ›dtˆƒ›d�ƒ‚tˆ| d…ƒ�s�td| ›dtˆƒ›d�ƒ‚ˆd| …‰ˆd| …ˆ| d…g‰dj‡‡fdd„tˆjd ƒDƒƒ}tj|ˆj|ƒ‰�n<ˆj| ƒ‰tˆƒ| d | k�r"td|›�tƒd‰nî|dk�rFdjd d„ˆDƒƒ‰d}nÊ|dk�rg}x¬‡fd!d„tdd tˆƒd d ƒDƒD]‚\}}}}td"d |d"d |d"ƒ}td"d |d"d |d"ƒ}td"d |d"d |d"ƒ}|jt|||fƒƒ�q|Wdj|ƒ‰d}ˆdk �r(ˆjˆ|d#�ˆj|tjk�r¯sz _handle_flate..rrrrr(r )ÚTextStringObjectrr rrr")rr rrr"zBase z8 not coded please share the pdf file with pypdf dev teamNrz#Not enough lookup values: Expected z, got Ú.z!Too many lookup values: Expected rFcs2g|]*‰dj‡‡‡fdd„tˆjdƒDƒƒ‘qS)rFcs*g|]"}ˆˆj|ˆfƒdkr dnd‘qS)ér r)Zgetpixel)rGrD)Ú colors_arrrMrCr8r9rIász,_handle_flate...r)rLr?r;)rG)rWrM)rCr9rIßsz!_handle_flate..zInvalid Lookup Table in cSsg|]}t|||gƒ‘qSr8)r@)rGÚbr8r8r9rIðsc3s|]}ˆ||d…VqdS)r(Nr8)rGÚn)Úlookupr8r9rS÷séÿ)Úrawmodez /ICCBasedz.tifZTIFFF)rrr)r rr )rrr)rrr)r(rr")!r*rrErOÚgenericrTrrÚget_dataÚoriginal_bytesr+Úencoder1ÚKeyErrorr r3r7r2rr rLr?r;rrJÚconvertr/Úappendr@Z putpaletter Z DEVICE_GRAYr)r;r:r7r#rPrQÚ extensionÚ image_formatÚbaseZhivalrTÚnbÚconvZexpected_countZarrZ_rgbZ_cÚ_mZ_yZ_kÚ_rZ_gÚ_br5r8)rWrMrZr9Ú _handle_flate�s”               2       rl)r;r:r7r#rPr'c CsÐd}tjt|ƒd d�}t|||ƒ\}}|dkrBtt|jƒ}|d k}|jdkrX|dkrXd}|j|kst|j|hdd hkrz|}n2|j|hddhkr¢tj||j|j ƒƒ}n |j |ƒ}|jdkrÀ|j dƒ}d} || ||fS) zb Process image encoded in flateEncode Returns img, image_format, extension, inversion z.jp2ÚJPEG2000)Úformatsrr"r!rr r)rm)r") rÚopenrr1rÚ mode_str_typer7rJr;Útobytesrb) r;r:r7r#rPrdZimg1r6rMrer8r8r9Ú _handle_jpxs"     rr)rr) rrrrrrr r!r")r)+Ú__doc__ÚsysÚiorÚtypingrrrrrrÚ_utilsr r Ú constantsr Úerrorsr rr]rrrrrÚ version_inforZtyping_extensionsZPILrrÚ ImportErrorrpr)r/r+Úboolr1r@rErOrlrrr8r8r8r9ÚsH      K k