a :jg$@sddlmZddlmZddlmZmZddlmZddlm Z dZ dd d d Z e Z d d ddZddddZdddddddZedeeddedddS)) annotations)IO)Image ImageFile)o8)o16be()r r )r r )r r )r fr )r 3r )r rr )r r r )r r r )r r r )r r r )r r r )r rr )r r r )r r r )r r r )r r r )r r r )r rr )r r r )r r r )r r r )r r r )r r r )r rr )r r r )r r r )r r r )r r r )r r r )r rr )r r r )r r r )r r r )r r r )r r r )r rr )r r r )r r r )r r r )r r r )r r r )r rr )r r r )r r r )r r r )r r r )r r r )r rr )r r r )r r r )r r r )r r r )r r r )r rr )r r r )r r r )r r r )r r r )r r r )r rr )r r r )r r r )r r r )r r r )r r r )r rr )r r r )r r r )r r r )r r r )r r r )r rr )r r r )r r r )r r r )r r r )r r r )r rr )r r r )r r r )r r r )r r r )r r r )r rr )r r r )r r r )r r r )r r r )r r r )r rr )rr r )rr r )rr r )rr r )rr r )rrr )rr r )rr r )rr r )rr r )rr r )rrr )rr r )rr r )rr r )rr r )rr r )rrr )r r r )r r r )r r r )r r r )r r r )r rr )r r r )r r r )r r r )r r r )r r r )r rr )r r r)r r r)r r r)r r r)r r r)r rr)r r r )r r r )r r r )r r r )r r r )r rr )r r r )r r r )r r r )r r r )r r r )r rr )r r r)r r r)r r r)r r r)r r r)r rr)r r r )r r r )r r r )r r r )r r r )r rr )r r r )r r r )r r r )r r r )r r r )r rr )r r r)r r r)r r r)r r r)r r r)r rr)r r r )r r r )r r r )r r r )r r r )r rr )r r r )r r r )r r r )r r r )r r r )r rr )r r r)r r r)r r r)r r r)r r r)r rr)r r r )r r r )r r r )r r r )r r r )r rr )r r r )r r r )r r r )r r r )r r r )r rr )r r r)r r r)r r r)r r r)r r r)r rr)rr r )rr r )rr r )rr r )rr r )rrr )rr r )rr r )rr r )rr r )rr r )rrr )rr r)rr r)rr r)rr r)rr r)rr)"rr)Drr)Urr)wrr)rr)rr)rr)rr)rr)rr)rr)rrr)rrr)rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrz Image.Image)returncCsbtddttf}|ttttd}tD] }||7}q2|ddtt7}|||S)NLrr)rnewlen_Palm8BitColormapValuesZputdatalistrangeZ putpalette)imageZ palettedataZ colormapValuerr=/usr/local/lib/python3.9/site-packages/PIL/PalmImagePlugin.pybuild_prototype_imageWs  r&i@ii )custom-colormapz is-compressedzhas-transparentr )noneZrleZscanlinez IO[bytes]z str | bytesNone)imfpfilenamerc sD|jdkrd}d}d}n|jdkr|jddvrf|jd}d|>dd||fdd}nP|jddvr|jd}d|>d|fd d}nd |jd }t|d|_d |}d}n.|jd krd}d}d}nd |jd }t|||jd}|jd}t |d|dd|d} d} t d} d} |jdkrd|jvr|j dusnJ| t d@} d} |j j}| }nd} d|jvr| |dd| d}nd}|t|t|t| t| |t||t||t||t| |t| |td| dkr|tdtdD]}|t||dkr|t|d|t|d|dt|d|dnH|dkr\|t|d|t|d|dt|d|dq\t||tdd|jd|| dfgt|dr@|dS)NPrrbpp)rcs |?SNrxmaxvalshiftrr%z_save..cs |@Sr2rr3)r6rr%r8r9zcannot write mode z as PalmzP;1z1;Irr0r(r'ioffsetr1rRGBZRGBAraw)rrflush)modeZ encoderinfogetpointinfoOSError_modeloadsizeint_COMPRESSION_TYPESpalette_FLAGSZgetdataZ getpalettewriteo16brr#r_saveZ_Tilehasattrr@)r*r+r,rawmoder/versionmsgcolsrowsZrowbytesZtransparent_indexZcompression_typeflagsZ colormapsizeZ colormapmodeZcolormapr<irr5r%rOus             &      rOZPalmz.palmz image/palmN) __future__rtypingrrr_binaryrrrNr!r&ZPalm8BitColormapImagerLrJrOZ register_saveZregister_extensionZ register_mimerrrr% s    E   o