3 }\@sddlmZddlmZmZddlmZmZddl Z dZ dd%d&d'd(d)d*d+d,d-d.d/d0d1iZ d d!Z Gd"d#d#ejZ eje je e eje jd$dS)2)print_function)Image ImageFile)i32lei8Nz0.1iALRGBALARGBYCC;PYCCA;PcCs|ddtjkS)N)olefileMAGIC)prefixr$j/private/var/folders/pf/wv4htv3x0qs2c2mp0dnn0kchsvlck3/T/pip-install-i584jbuk/Pillow/PIL/FpxImagePlugin.py_accept0sr&c@s8eZdZdZdZddZdddZdd d Zd d Zd S) FpxImageFileZFPXZFlashPixc CsTytj|j|_Wntk r.tdYnX|jjjdkrFtd|jddS)Nz!not an FPX file; invalid OLE filez$56616700-C154-11CE-8553-00AA00A1F95Bznot an FPX file; bad root CLSIDr) r!Z OleFileIOfpoleIOError SyntaxErrorrootZclsid _open_index)selfr$r$r%_open<szFpxImageFile._openrcCs |jjd|dg}|d|df|_t|j}d}x|dkrP|d}|d7}q6W|d|_|jd>}|d |B}g}x2tt|d D] }|jt|d |d d @qWt t |\|_ |_ i|_ x2td D]&}d|d>B}||kr|||j |<qW|jd|jdS)NzData Object Store %06dzImage Contentsiir@ir ii)r)Z getproperties_sizemaxsizeZmaxidrangei32appendMODEStuplemoderawmodejpeg_open_subimage)r.indexpropr7iidscolorsr$r$r%r-Ks,        zFpxImageFile._open_indexrc CsBd|d|dg}|jj|}|jd|jd}t|dt|df}t|dt|d f}t|d}t|d } ||jkrtd |jd||jt|d | }d } } |\} } |\}}g|_xntd t || D]X}t||d}|d kr$|jj d| | | || |ft||d|j fn|dkrl|jj d| | | || |ft||d|j |d dffn|dkrt |d}t |d}|j }|r|dkrd\}}nd}n|}|jj d| | | || |ft||d||ff|r|j ||_ntd| |} | | krd | |} } | | krPqW||_d|_dS)NzData Object Store %06dzResolution %04dzSubimage 0000 Header$r3r r2 zsubimage mismatch rrawrfillr1r YCbCrKCMYKr?zunknown/invalid compression)rPrQ)r) openstreamreadr9r7r*seekZtiler8lenr:r>rr?Z tile_prefixstreamr()r.rAZsubimagerVr(rEr7ZtilesizeoffsetlengthxyZxsizeZysizeZxtileZytilerC compressionZinternal_color_conversionZ jpeg_tablesr>Zjpegmoder$r$r%r@ys^        $     zFpxImageFile._open_subimagecCs0|js$|jj|jdddg|_tjj|S)Nr1zSubimage 0000 Data)r(r)rRrVrload)r.r$r$r%r\s zFpxImageFile.loadN)r)rr) __name__ __module__ __qualname__formatformat_descriptionr/r-r@r\r$r$r$r%r'7s  . \r'z.fpx)rr )r )r r )r r )r r)rrr)rr)rrrr)r r)rrr)rr)rrrr)r r ) __future__rrr_binaryrr9rr! __version__r;r&r'Z register_openr`Zregister_extensionr$r$r$r%s +