B ]w @sddlZddlmZmZmZddlmZmZdZe dZ ddZ Gd d d ejZ e e je e ee jd ee jd dS) N)Image ImageFile ImagePalette)i8o8z0.2s$"([0-9]*) ([0-9]*) ([0-9]*) ([0-9]*)cCs|dddkS)N s /* XPM */)prefixr r 4/tmp/pip-build-ktz6qwqq/Pillow/PIL/XpmImagePlugin.py_acceptsr c@s$eZdZdZdZddZddZdS) XpmImageFileZXPMz X11 Pixel Mapc Cst|jdstdx*|j}|s0tdt|}|rPqWt|dt|df|_ t|d}t|d}|dks|dkrt d d gd}x&t |D]}|j}|d dd kr|dd }n|d dd kr|dd }t |d}|dd  }xt dt|dD]}||dkr$||d}|dkrX||jd<n^|dddkrt|ddd}t|d?d@t|d?d@t|d@||<nt d Pq$Wt d qWd|_tdd||_dd|j|jdfg|_dS)Nrznot an XPM filezbroken XPM filerzcannot read this XPM filess rcsNoneZ transparency#PZRGBraw)rr)rrr)r fpread SyntaxErrorreadlinexpm_headmatchintgroup_size ValueErrorrangersplitleninformoderrjoinpalettesizetellZtile) selfsmZpalZbppr,icZrgbr r r _open,sJ         2 zXpmImageFile._opencCsP|j\}}dg|}x0t|D]$}|jd|d|||<qWd|S)Nrr)r-r&rrljustr+)r/bytesZxsizeZysizer0r2r r r load_reados   $zXpmImageFile.load_readN)__name__ __module__ __qualname__formatformat_descriptionr4r7r r r r r 'sCr z.xpmz image/xpm)rerrr_binaryrr __version__compiler r r Z register_openr;Zregister_extensionZ register_mimer r r r s [