)Ej,ddlmZddlZddlmZmZddlmZdddd d d d d Z ddZ GddejZ ej e j e e eje j ddS)) annotationsN)Image ImageFile)i32le)AL)r r )RGBALA)RGBzYCC;P)r zYCCA;P)r r )r r ))i)i)ii)iii)iiii)iii)iiiiprefixbytesreturnboolc@|tjSN) startswitholefileMAGIC)r s DC:\PYTHON\MyICR_Suite\python\Lib\site-packages\PIL/FpxImagePlugin.py_acceptr,s   W] + ++cXeZdZdZdZddZddd Zddd ZddZdfd Z dfd Z xZ S) FpxImageFileFPXFlashPixrNonec|jJ tj|j|_n$#t$r}d}t ||d}~wwxYw|jj}|r |jdkrd}t ||ddS)Nz!not an FPX file; invalid OLE filez$56616700-C154-11CE-8553-00AA00A1F95Bznot an FPX file; bad root CLSIDr) fpr OleFileIOoleOSError SyntaxErrorrootclsid _open_index)selfemsgr$s r_openzFpxImageFile._open8s w""" *(11DHH * * *5Cc"" ) *x} #tz%KKK3Cc"" " s* A AA rindexintc |jd|ddg}t|dtsJt|dtsJ|d|df|_t |j}d}|dkr|dz}|dz }|dk|dz |_|jd z}|d |z t trt d x}d krd }t|t fd t|D}t|\|_|_i|_tdD]}d|d zz}||vr|||j|<|d|jdS)NData Object Store 06dzImage Contentsiir@izInvalid number of bandsc3JK|]}td|dzzdzVdS)r3iN)i32).0iss r z+FpxImageFile._open_index..os:LL!s1a!a%i((:5LLLLLLri)r! getproperties isinstancer,_sizemaxsizemaxidrr6r"tuplerangeMODES_moderawmodejpeg_open_subimage) r'r+propr@r8idbandsr)colorsr9s @rr&zFpxImageFile._open_indexKsx%% -% - - -/C D   $y/3/////$y/3/////)_d9o5 49~~ Rii19D FARiiU Z2  R !U## Q(:a'?'?+C#,, LLLLuU||LLLLL#(=  DL s ( (Aa2g&BTzz#Bx !  Atz*****rrsubimagec 4d|dd|ddg}|j|}|d|d}t|dt|d f}t|d t|d }}|d ks|d krd } t | t|d} t|d} ||jkrd} t | |d| z|t|d| z}dx} } |\}}g|_tdt|| D]}t|| |z}t|| |z}t||d z}|dkrJ|j tjd| | ||ft||dz|jn|dkrT|j tjd| | ||ft||dz|j|dd fn|dkr|d}|d}|j}|r|dkrd\}}nd}n|}|j tjd| | ||ft||dz||f|r|j||_nd} t | | |z } | |krd| |z} } | |krn|jJ||_|j|_d|_dS)Nr.r/z Resolution 04dzSubimage 0000 Header$r3r5r2r0z#Tile must be 64 pixels by 64 pixels zsubimage mismatch rrawrfillr1r )YCbCrKCMYKrGzunknown/invalid compression)r! openstreamreadr6 ValueErrorr@r"seektilerClenminappendr_TilerFrG tile_prefixrstream_fp)r'r+rMrerr9r@xtileytiler)offsetlengthxyxsizeysizer8x1y1 compressioninternal_color_conversion jpeg_tablesrFjpegmodes rrHzFpxImageFile._open_subimage|s - , , , (( ( ( ( "  X  ( (   GGBKK1ayy#a))#1bzz3q"::u B;;%2++7CS// !QQ 49  %C#,,  V  GGC2JJ' ( ( A u q#a&&&))E E AUAI&&BUAI&&BaQ--Ka   OAr2Aq B !!   OAr2Aq BqBx0 !!,-bE)e ,, '&((-=)''#' 'H   OAr2Aq B (+ >'+y'=D$4cll" JAEzz!e)1::Ew""" 7rImage.core.PixelAccess | Nonec|js0|j|jdddgz|_tj|S)Nr1zSubimage 0000 Data)rr!r[rerload)r's rrwzFpxImageFile.loadsNw Th))$+bqb/=Qrs"#"""""!!!!!! ,*:6H*86F  &,,,,IIIII9&III`L'w???,f55555r