o
    Z#ûa¡	  ã                   @   sP   d Z ddlmZmZmZ ddlmZ ddlmZ	 G dd„ dejƒZ
ddd	„Zd
S )a‚  
.. note::
    This format cannot be automatically recognized, so the
    class is not registered for use with :py:func:`PIL.Image.open()`.  To open a
    gd file, use the :py:func:`PIL.GdImageFile.open()` function instead.

.. warning::
    THE GD FORMAT IS NOT DESIGNED FOR DATA INTERCHANGE.  This
    implementation is provided for convenience and demonstrational
    purposes only.
é   )Ú	ImageFileÚImagePaletteÚUnidentifiedImageError)Úi16be)Úi32bec                   @   s    e Zd ZdZdZdZdd„ ZdS )ÚGdImageFilea%  
    Image plugin for the GD uncompressed format.  Note that this format
    is not supported by the standard :py:func:`PIL.Image.open()` function.  To use
    this plugin, you have to import the :py:mod:`PIL.GdImageFile` module and
    use the :py:func:`PIL.GdImageFile.open()` function.
    ÚGDzGD uncompressed imagesc                 C   sÀ   | j  d¡}t|ƒdvrtdƒ‚d| _t|dƒt|dƒf| _|d }|r&dnd}t|d	| ƒ}|d
k r8|| jd< t 	d|d	| d d	| d d … ¡| _
dd| j d	| d d dfg| _d S )Ni  )iþÿ  iÿÿ  zNot a valid GD 2.x .gd fileÚLé   é   é   é    é   é   ÚtransparencyÚXBGRi   Úraw)r   r   )r	   r   r   )ÚfpÚreadÚi16ÚSyntaxErrorÚmodeÚ_sizeÚi32Úinfor   r   ÚpaletteÚsizeÚtile)ÚselfÚsÚ	trueColorÚtrueColorOffsetÚtindex© r#   ú1/usr/lib/python3/dist-packages/PIL/GdImageFile.pyÚ_open.   s   
 ÿ
ÿzGdImageFile._openN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚformatÚformat_descriptionr%   r#   r#   r#   r$   r   #   s
    r   Úrc              
   C   s>   |dkrt dƒ‚zt| ƒW S  ty } ztdƒ|‚d}~ww )a)  
    Load texture from a GD image file.

    :param filename: GD file name, or an opened file handle.
    :param mode: Optional mode.  In this version, if the mode argument
        is given, it must be "r".
    :returns: An image instance.
    :raises OSError: If the image could not be read.
    r,   zbad modezcannot identify this image fileN)Ú
ValueErrorr   r   r   )r   r   Úer#   r#   r$   ÚopenJ   s   


€ÿr/   N)r,   )r)   Ú r   r   r   Ú_binaryr   r   r   r   r   r/   r#   r#   r#   r$   Ú<module>   s   '