)EjZddlmZddlZddlZddlmZddlmZmZddl m Z ddl m Z dd ZGd dejZGddejZejdeddZejejeeejejeejejddS)) annotationsN)IO)Image ImageFile)i16le)o16leprefixbytesreturnboolc,|dS)N)DanMsLinS) startswith)r s DC:\PYTHON\MyICR_Suite\python\Lib\site-packages\PIL/MspImagePlugin.py_acceptr's   / 0 00ceZdZdZdZddZdS) MspImageFileMSPz Windows Paintr Nonec$|jJ|jd}t|sd}t|d}t dddD]}|t ||z }|dkrd}t|d|_t |dt |df|_|d r'tj d d |j zddg|_ dStj d d |j zdg|_ dS) N znot an MSP filerzbad MSP checksum1rrawrrr) fpreadr SyntaxErrorrangei16_mode_sizerr_Tilesizetile)selfsmsgchecksumis r_openzMspImageFile._open4sw""" GLL  qzz ##Cc"" "q"a , ,A#a))+HH q==$Cc"" " AYYAq ) <<  I"0BBLLMDIII"0BBGGHDIIIrN)r r)__name__ __module__ __qualname__formatformat_descriptionr/rrrr0s9 F(IIIIIIrrceZdZdZddZdS) MspDecoderTbufferImage.DecoderInputr tuple[int, int]c0|jJtj}td|jjdzdzz} |jdtjd|jj d|j |jj dz}n)#tj $r}d}t||d}~wwxYwt|D]\}} |d kr||#|j |} t| |krd |d |}t|d } | |krw| | } | d z } | d kr7tjd | | \} } || | z| dz } n'| } || | | | z| | z } | |kw#tj $r}d|}t||d}~wwxYw||ddS)N)r<HrzTruncated MSP file in row maprzTruncated MSP file, expected z bytes on row rBczCorrupted MSP file in row r)r)fdioBytesIO bytearraystatexsizeseekstruct unpack_fromysizer!errorOSError enumeratewritelen set_as_rawgetvalue)r*r8img blank_linerowmaper,xrowlenrowidxruntyperuncountrunvals rdecodezMspDecoder.decodessQw"""jllw4:+;a+?A*EFGG  & GLL   ''DJ$'''dj6F6J)K)KFF| & & &1C#,,A % &#6** * *IAv *Q;;IIj)))gll6**s88v%%S&SSPQSSC!#,,&Fll!#hG1HC!||+1+=dC+M+M(& &8"3444q#* #cC(N&:";<<<xFll< * * *6166cll) *  ,,,us8A"B##C 2CC "G>CGG+G&&G+N)r8r9r r:)r0r1r2 _pulls_fdr_r5rrr7r7Ns0FI******rr7rim Image.Imager IO[bytes]filename str | bytesrc |jdkrd|jd}t|dgdz}tdtdc|d<|d<|j\|d <|d <d \|d <|d <d \|d<|d<|j\|d<|d<d}|D]}||z }||d<|D]$}|t |%t j||t jdd|jzddgdS)Nrzcannot write mode z as MSPrsDasnMrr)rrrrr=r> rrr) moderNr$r(rPo16r_saver')rar rdr,headerr-hs rrnrns. w#~~327333cllS2XFu::s5zzF1Ivay7F1IvayF1IvayF1Ivay7F1IvayH   a<F2J QOBY_UFRW4Db#NNOPPPPPrz.msp)r r r r )rarbr rcrdrer r) __future__rrDrJtypingrrr_binaryrr$r rmrr PyDecoderr7register_decoderrn register_openr3 register_saveregister_extensionr5rrrzsy2#""""" !!!!!!!!!!!! 1111IIIII9&III