Files
old-parkingkoncept/parkingkonceptvenv/lib/python3.7/site-packages/PIL/__pycache__/GifImagePlugin.cpython-37.pyc

202 lines
16 KiB
Plaintext
Raw Normal View History

2019-11-17 12:44:16 +01:00
B
(U<>]_p<00>@sNddlZddlmZmZmZmZmZddlmZm Z
m Z m Z dZdd<07>ZGdd <09>d ej<04>Zd
d
d d <0C>Zd5dd<0F>Zdd<11>Zdd<13>Zdd<15>Zdd<17>Zd6dd<19>Zdd<1B>Zdd<1D>Zdd<1F>Zd Zd d!<21>Zd"d#<23>Zd$d%<25>Zd&d'<27>Zd(d)<29>Z d*d+<2B>Z!d,d-<2D>Z"d7d.d/<2F>Z#d8d1d2<64>Z$e<02>%ej&ee<0F>e<02>'ej&e<17>e<02>(ej&e<16>e<02>)ej&d3<64>e<02>*ej&d4<64>dS)9<>N<>)<05>Image<67>
ImageChops<EFBFBD> ImageFile<6C> ImagePalette<74> ImageSequence)<04>i8<69>i16le<6C>o8<6F>o16lez0.9cCs|dd<01>dkS)N<>)sGIF87asGIF89a<39>)<01>prefixr r <00>6/tmp/pip-install-pc7tm5jb/Pillow/PIL/GifImagePlugin.py<70>_accept)src@sleZdZdZdZdZdZdd<06>Zdd<08>Ze d d
<EFBFBD><00>Z
e d d <0C><00>Z d d<0E>Z dd<10>Z dd<12>Zdd<14>Zdd<16>ZdS)<17> GifImageFileZGIFzCompuserve GIFFNcCs,|j<00>d<01>}|r(t|<01>r(|j<00>t|<01><01>SdS)Nr)<03>fp<66>readr)<02>self<6C>sr r r<00>data:s  zGifImageFile.datacCsH|j<00>d<01>}|dd<02>dkr$td<04><01>|dd<02>|jd<t|dd<00><00>t|dd<00><00>f|_g|_t|d<00>}|d@d }|d
@<00>rt|d <00>|jd <|j<00>d |><00>}xvtdt |<04>d <0A>D]b}|d t||<00>kr<>t||d <00>kr<>t||d<00>ks<>nt
<EFBFBD> d|<04>}||_ |_ Pq<>W|j|_|j<00><0F>|_d|_d|_|<00>d<0E>dS)N<> r )sGIF87asGIF89aznot a GIF file<6C>version<6F><00>
<00>r<00><><00> <00>
background<EFBFBD>r<00><00>RGB)rr<00> SyntaxError<6F>info<66>i16<31>_size<7A>tiler<00>range<67>lenr<00>raw<61>global_palette<74>palette<74>_GifImageFile__fp<66>tell<6C>_GifImageFile__rewind<6E> _n_frames<65> _is_animated<65>_seek)rr<00>flags<67>bits<74>p<>ir r r<00>_open@s* "  
D   zGifImageFile._opencCsb|jdkr\|<00><01>}yx|<00>|<00><01>d<00>qWWn"tk
rP|<00><01>d|_YnX|<00>|<01>|jS)Nr)r/r-<00>seek<65>EOFError)r<00>currentr r r<00>n_frames^s

zGifImageFile.n_framescCsj|jdkrd|jdk r"|jdk|_nB|<00><02>}y|<00>d<01>d|_Wntk
rXd|_YnX|<00>|<01>|jS)NrTF)r0r/r-r7r8)rr9r r r<00> is_animatedjs



 
zGifImageFile.is_animatedc Cs<>|<00>|<01>sdS||jkr0|dkr&d|_|<00>d<01>|j}xRt|jd|d<00>D]:}y|<00>|<03>WqLtk
r<EFBFBD>|<00>|<02>td<03><01>YqLXqLWdS)Nrrzno more images in GIF file)Z _seek_check<63>_GifImageFile__frame<6D>imr1r'r8r7)r<00>frameZ
last_frame<EFBFBD>fr r rr7{s



zGifImageFile.seekc Cs<>|dkrDd|_d|_ddddg|_d|_|j<04>|j<06>d|_d|_n|j sR|<00>
<EFBFBD>||jdkrlt d|<00><01>||_g|_ |j|_ |jr<>|j <0A>|j<00>x |<00><0E>r<>q<EFBFBD>Wd|_|jr<>|j <09>|j|j<02>ddlm}||j<11>|_i}<03>x<>|j <0A>d<03>}|r<>|dkr<>Pq<>|dk<02>rR|j <0A>d<03>}|<00><0E>}t|<04>dk<02>r<>t|d<00>}|d@<00>rNt|d <00>|d
<t|dd <09><00>d |d <d |@}|d?}|<07>r>||_n<>t|<04>dk<02>r<>x8|<05>r<>d|k<06>r<>|d|7<n||d<|<00><0E>}<05>q<>Wq<>nnt|<04>dk<02>r>||j <0A><16>f|d<|dd<13>dk<02>r>|<00><0E>}t|<05>d k<05>r>t|d<00>dk<02>r>t|dd <09><00>|d<x|<00><0E><00>rN<72>q@Wq<>|dkr<>|j <0A>d<17>}t|dd<00><00>t|dd<00><00>}} |t|dd<00><00>| t|dd<00><00>}
} |
|jdk<04>s<>| |jdk<04>r<>t|
|jd<00>t| |jd<00>f|_|| |
| f|_t|d<00>}|d@dk} |d@<00>rJ|d@d} t<1B>d|j <0A>d | ><00><01>|_t|j <0A>d<03><01>} |j <0A><16>|_d|| |
| f|j| | ffg|_ Pq<>q<EFBFBD>Wyz|jdk<00>r<>d|_nH|jdk<02>r<>t<1D>|j<18>tj<1F> d |j|j!d!<00>|_n|j <09>r<>|j <09><10>|_|j<01>r|<00>"|j|j<02>|_Wnt#t$fk
<EFBFBD>r YnX|j <0C>s.t%<25>x<d"D]4}||k<06>rR|||j!|<n||j!k<06>r4|j!|=<00>q4Wd#|_&|j<12>r<>d |_&dS)$Nr<00><><EFBFBD><EFBFBD><EFBFBD>rzcannot seek to frame %d)<01>copy<70>;<3B>!<21><>r<00> transparencyr<00>duration<6F>r <00><><00>comment<6E><74><00> extensionrs NETSCAPE2.0<EFBFBD>loop<6F>,<2C> <00>r r<00>@rrr!<00>gif<69>Pr)rErFrIrKrL<00>L)'Z_GifImageFile__offsetZdispose<73>dispose_extentr<r,r7r.<00>_prev_im<69>disposal_methodr=<00>load<61>
ValueErrorr&rr<00>pasterAr*r+rrr$r-r(<00>size<7A>maxr%rr)rZ_decompression_bomb_check<63>core<72>fillr#<00>_crop<6F>AttributeError<6F>KeyErrorr8<00>mode)rr>rAr#r<00>blockr2Z dispose_bitsZx0Zy0<79>x1<78>y1<79> interlacer3<00>kr r rr1<00>s<> 
    
  

   "* "  
      

 zGifImageFile._seekcCs|jS)N)r<)rr r rr-'szGifImageFile.tellcCs\tj<00>|<00>|jrL|jdkrL|<00>|j|j<06>}|j<02>||j|<01>d<02><01>|j|_|j<05> <09>|_dS)NrZRGBA)
r<00>load_endrUrVr^r=rTrY<00>convertrA)r<00>updatedr r rrg*s  zGifImageFile.load_endcCsBz4y|j|jkr|j<00><02>Wntk
r0YnXWdd|_XdS)N)r,r<00>closer_)rr r r<00>
_close__fp7s  
zGifImageFile._close__fp)<11>__name__<5F>
__module__<EFBFBD> __qualname__<5F>format<61>format_descriptionZ!_close_exclusive_fp_after_loadingr*rr6<00>propertyr:r;r7r1r-rgrkr r r rr2s  rrSrR)<03>1rSrRFcCsp|jtkr|<00><02>|St<03>|j<00>dkrf|r\d}|jrJt|j<05><07>d<00>d}|jdtj |d<06>S|<00>d<05>S|<00>d<07>S)a
Takes an image (or frame), returns an image in a mode that is appropriate
for saving in a Gif.
It may return the original image, or it may return an image converted to
palette or 'L' mode.
UNDONE: What is the point of mucking with the initial call palette, for
an image that shouldn't have a palette, or it would be a mode 'P' and
get returned in the RAWMODE clause.
:param im: Image object
:param initial_call: Default false, set to true for a single frame.
:returns: Image object
r!<00>rrrR)r+<00>colorsrS)
ra<00>RAWMODErWrZ getmodebaser+r(<00>getdatarhZADAPTIVE)r=Z initial_callZ palette_sizer r r<00>_normalize_modeHs

rwc Cs<>d}|rjt|tttf<03>r(t|dd<02><00>}t|tj<04>rjttj<06>t|j dd<03>|j dd<04>|j dd<02><00><03><01>}|j
dkr<>|s<>|j <0B> d<06>dd<02>}n*|s<>tdd<08>t d<02>D<00><01>}tjd|d <09>|_ t||<02>}|dk r<>|<00>||<03>S||j _ |S)
at
Normalizes the palette for image.
- Sets the palette to the incoming palette, if provided.
- Ensures that there's a palette for L mode images
- Optimizes the palette if necessary/desired.
:param im: Image object
:param palette: bytes object containing the source palette, or ....
:param info: encoderinfo
:returns: Image object
NirsirRr!css|]}|dVqdS)rNr )<02>.0r5r r r<00> <genexpr><3E>sz%_normalize_palette.<locals>.<genexpr>)r+)<10>
isinstance<EFBFBD>bytes<65> bytearray<61>listr<00> itertools<6C>chain<69> from_iterable<6C>zipr+rar=Z
getpaletter'<00> _get_optimizeZ remap_palette)r=r+r#Zsource_palette<74>used_palette_colorsr r r<00>_normalize_palettefs,    

 r<>c Cs<>t|d<01>}x$|j<01><02>D]\}}|j<03>||<05>qWt|||j<03>}xt||j<03>D]}|<01>|<06>qLWd}t|<00>rr|dB}t ||d|<07>dt|<00>f|_
t <0B> ||dd|j dt|jfg<01>|<01>d<07>dS)NTrrP)rrrrQ<00>)rwr#<00>items<6D> encoderinfo<66>
setdefaultr<EFBFBD><00>_get_global_header<65>write<74> get_interlace<63>_write_local_headerZ encoderconfigr<00>_saverZrura)r=rr+Zim_outrf<00>vrr2r r r<00>_write_single_frame<6D>s
$r<>c
Cs<>|j<00>d|j<02>d<01><01>}|j<00>d|j<02>d<02><01>}g}d}d}<07>x<>t<03>|g|j<00>dg<00><02>D<00>]<5D>}<08>x<>t<05>|<08>D<00>]<5D>} t| <09><08><00>} |dkr<>x$| j<02> <09>D]\}
} |j<00>
|
| <0B>q<>Wt | ||j<00>} |j<00><08>} t |t tf<02>r<>||| d<t |t tf<02>r<>||| d<|d7}|<05>r<>|d} | <0C>d<02>dk<02>rj|dk<08>rdt||j<00>d|j<02>d<08><01><02>}t<10>d | j|<0E>}|<07>|dd
j<14>|}n| d
}t| <09>t|<0F>k<02>r<>t<16>| |<0F>}nt<16>| <09>d <0B>|<0F>d <0B><01>}|<10><19>}|<11>s<>|rh| d d| d7<qhnd}|<05>| || d <0A><03>qhWqTWt|<05>dk<04>r<>x<EFBFBD>|D]~}|d
} |d<00>sJx"t| |d <00>D]}|<01>|<13><00>q0Wd}n*d|d d<| <09>|d<00>} |ddd<07>}t|| ||d <00><00>q
WdSd|jk<06>r<>t |jdt tf<02><02>r<>t |jd<00>|jd<dS)NrF<00>disposalrZ append_imagesrr@r rrRr=r!r<>)r=<00>bboxr<78>r<>)rrT<>include_color_table)!r<><00>getr#r~rr<00>IteratorrwrAr<>r<>r<>rzr}<00>tuple<6C>_get_backgroundr<00>newrZZ
putpaletter+<00>_get_palette_bytesrZsubtract_modulorhZgetbbox<6F>appendr(r<>r<>Zcrop<6F>_write_frame_data<74>sum)r=rr+rFr<>Z im_framesZ frame_countZ background_imZ
imSequence<EFBFBD>im_framerfr<>r<><00>previousrZbase_im<69>deltar<61>Z
frame_datar<00>offsetr r r<00>_write_multiple_frames<65>sn" 
  


 r<>cCst|||dd<02>dS)NT)<01>save_all)r<>)r=r<00>filenamer r r<00> _save_all<6C>sr<>cCs<>d|jksd|jkr,|j<00>d|j<01>d<01><01>}nd}|j<00>dd<03>|jd<|rTt|||<04>s`t|||<04>|<01>d<04>t|d<05>r||<01><07>dS)Nr+<00>optimizeTrB<00>flush)r<>r#r<>r<>r<>r<><00>hasattrr<72>)r=rr<>r<>r+r r rr<><00>s 

r<>cCs$|j<00>dd<02>}t|j<03>dkr d}|S)Nrer<00>r)r<>r<><00>minrZ)r=rer r rr<> sr<>cCs<>d}y|jd}Wntk
r&YnJXt|<05>}d}t||j<00>}|dk rpy|<06>|<05>}Wntk
rnd}YnXd|jkr<>t|jdd<00>}nd}t|j<00>dd<06><02>}|s<>|dks<>|<08>r|r<>dnd} | |d >O} |s<>d}|<00>d
td <0B>td <0C>t| <09>t |<07>t|<05>td<06><00>d |jk<06>r<>dt
|jd <00>k<01>r<>|<00>d
td<0E><00>xLt dt
|jd <00>d<0F>D]2}
|jd |
|
d<00>} |<00>tt
| <0B><01>| <00><00>qZW|<00>td<06><01>d|jk<06>r<>|jd} |<00>d
td<0F>td<11>dtd<13>td<08>t | <0C>td<06><00>|j<00>d<14>} | <0A>r*t |<01>}t |<0E>}|<0F>r*|dB}||B}|<00>dt |d<00>t |d<00>t |jd<00>t |jd<00>t|<03><00>| <0A>r<>|<0F>r<>|<00>t|<0E><01>|<00>td<17><01>dS)NFrETrFrrr<>rr rCrDrOrIrHrJrLrs NETSCAPE2.0rr<>rrMr)r<>r`<00>intr<74><00>indexrXr<>r<>r
<00>o16r(r'r<><00>_get_color_table_sizerZ<00>_get_header_palette)rr=r<>r2Ztransparent_color_existsrEr<>rFr<>Z packed_flagr5ZsubblockZnumber_of_loopsr<73><00> palette_bytes<65>color_table_sizer r rr<>s\ 

  6  
: B r<>c
Csddl}ddlm}m}m}m}|<00><06>}t|d<03><02><>} |jdkrjt|j d<03><02>}
|d|g| |
d<06>WdQRXn~dd|g} dg} t|j d<03><02>&}
|| ||
d<06>} || | j
| |
d <09>}WdQRX| j
<EFBFBD> <0B>| <0A> <0C>}|r<>||| <0B><02>|<0E> <0C>}|r<>||| <0C><02>WdQRXy|<03> |<08>Wntk
<EFBFBD>rYnXdS)
Nr)<04>Popen<65>
check_call<EFBFBD>PIPE<50>CalledProcessError<6F>wbr!Zppmtogif)<02>stdout<75>stderrZppmquantZ256)<03>stdinr<6E>r<>)<0F>os<6F>
subprocessr<EFBFBD>r<>r<>r<><00>_dump<6D>openra<00>devnullr<6C>rj<00>wait<69>unlink<6E>OSError)r=rr<>r<>r<>r<>r<>r<><00>tempfiler?r<>Z quant_cmdZ togif_cmdZ
quant_procZ
togif_proc<EFBFBD>retcoder r r<00> _save_netpbmds0  



r<>cCs<>|jdkr<>|r<>|<01>dd<03>r<>tp&|jdk}|s<|j|jdkr<>g}x&t|<00><06><00>D]\}}|rN|<03>|<04>qNW|s<>t|<03>dkr<>t |<03>t|<03>kr<>|SdS)aL
Palette optimization is a potentially expensive operation.
This function determines if the palette should be optimized using
some heuristics, then returns the list of palette entries in use.
:param im: Image object
:param info: encoderinfo
:returns: list of indexes of palette entries in use, or None
)rRrSr<>rrSirN)
rar<><00>_FORCE_OPTIMIZE<5A>width<74>height<68> enumerateZ histogramr<6D>r(r[)r=r#Zoptimiser<65>r5<00>countr r rr<><00>s   r<>cCsFddl}|sdSt|<00>dkr dSt|<01>|<01>t|<00>dd<05><02><01>dSdS)NrrNrrr )<05>mathr(r<><00>ceil<69>log)r<>r<>r r rr<><00>s  r<>cCs<t|<00>}d|>t|<00>d}|dkr8|td<03>d|7}|S)z<>
Returns the palette, null padded to the next power of 2 (*3) bytes
suitable for direct inclusion in the GIF header
:param palette_bytes: Unpadded palette bytes, in RGBRGB form
:returns: Null padded palette
r rr)r<>r(r
)r<>r<>Zactual_target_size_diffr r rr<><00>s
r<>cCs|jjS)z<>
Gets the palette for inclusion in the gif header
:param im: Image object
:returns: Bytes, len<=768 suitable for inclusion in gif header
)r+)r=r r rr<><00>sr<>cCs&d}|r"|}t|t<01>r"|j<02>|<02>}|S)Nr)rzr<>r+Zgetcolor)r=ZinfoBackgroundrr r rr<><00>s 
 r<>cCs<>d}xndD]R}|r
||kr
|dkr.||dks
|dkrVdt||<00>krRdksVq
q
d}Pq
W|j<01>d <09>dkrtd}t||<01>d
<EFBFBD><01>}t|<00>}t|<05>}d |t|jd<00>t|jd<00>t|d <00>t|<04>td<04>t |<05>gS) z2Return a list of strings representing a GIF headers87a)rErFrLrIrFrrIrrJs89arrsGIFr)
r(r#r<>r<>r<>r<>r<>rZr
r<>)r=r#rZ extensionKeyrr<>r<>r r rr<><00>s"
 &"
r<>c CsRzF||_t|||d<01>t<02>||dd|jdt|jfg<01>|<00>d<04>Wd|`XdS)NrrQ)rrr<>)r<>r<>rr<>rZrurar<>)rr<>r<><00>paramsr r rr<>s r<>cCsdt||<02>}|dkri}d|kr6d|jkr6|jd|d<t|||<02>}|j|_|j|_t||<02>}||fS)a
Legacy Method to get Gif data from image.
Warning:: May modify image data.
:param im: Image object
:param palette: bytes object containing the source palette, or ....
:param info: encoderinfo
:returns: tuple of(list of header items, optimized palette)
Nr)r<>r#r<>r+r=r<>)r=r+r#r<>Zim_mod<6F>headerr r r<00> getheader+s
 
r<><00>rrcKs2Gdd<02>dt<00>}|<00><01>|<03>}t||||<02>|jS)a<>
Legacy Method
Return a list of strings representing this image.
The first string is a local image header, the rest contains
encoded image data.
:param im: Image object
:param offset: Tuple of (x, y) pixels. Defaults to (0,0)
:param \**params: E.g. duration or other encoder info parameters
:returns: List of Bytes containing gif encoded frame data
c@seZdZgZdd<02>ZdS)zgetdata.<locals>.CollectorcSs|j<00>|<01>dS)N)rr<>)rrr r rr<>[sz getdata.<locals>.Collector.writeN)rlrmrnrr<>r r r r<00> CollectorXsr<>)<04>objectrWr<>r)r=r<>r<>r<>rr r rrvIs
rvz.gifz image/gif)F)F)NN)r<>)+r~<00>rrrrr<00>_binaryrr r$r
r r<><00> __version__rrrurwr<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>rvZ register_openroZ register_saveZregister_save_allZregister_extensionZ register_mimer r r r<00><module>s@  
,M

Q0% 
 '

!