a
    )Ņyc?	  ć                   @   sl   d dl Z d dlZd dlZd dlZd dlZd dlZdd Zdd Z	dd Z
dd	 Zd
d Zdd Zdd ZdS )é    Nc                 C   s"   t  ” }| | ” tj |”}|S ©N)ŚioŚBytesIOŚwriteŚPILŚImageŚopen)Śimg_dataŚfŚimg_pil© r   ś`/nfs/NAS7/SABIOD/METHODE/ermites/ermites_venv/lib/python3.9/site-packages/labelme/utils/image.pyŚimg_data_to_pil
   s    
r   c                 C   s   t | }t |”}|S r   )r   ŚnpŚarray)r	   r   Śimg_arrr   r   r   Śimg_data_to_arr   s    
r   c                 C   s   t  | ”}t|}|S r   )Śbase64Ś	b64decoder   )Śimg_b64r	   r   r   r   r   Śimg_b64_to_arr   s    
r   c                 C   s"   t  ” }| j|dd | ” }|S )NŚPNG©Śformat)r   r   ŚsaveŚgetvalue)r   r
   r	   r   r   r   Śimg_pil_to_data   s    r   c                 C   sN   t j | ”}t ” }|j|dd | ” }ttdr@t 	|”}n
t 
|”}|S )Nr   r   Śencodebytes)r   r   Z	fromarrayr   r   r   r   Śhasattrr   r   Śencodestring)r   r   r
   Zimg_binr   r   r   r   Śimg_arr_to_b64$   s    

r    c              	   C   s   t  ” z}| | ” tj |”}t  ” <}| |d” | d” | ” W  d    W  d    S 1 sj0    Y  W d    n1 s0    Y  d S )Nr   r   )	r   r   r   r   r   r   r   ŚseekŚread)r	   r
   Zimgr   r   r   Śimg_data_to_png_data0   s    



r#   c                 C   s
  z|   ” }W n ty"   d }Y n0 |d u r0| S dd | ” D }| dd ”}|dkrZ| S |dkrntj | ”S |dkr|  tjj	”S |dkrtj 
| ”S |dkr¶tj |  tjj””S |d	krĢ|  tjj”S |d
krźtj |  tjj””S |dkr|  tjj”S | S d S )Nc                 S   s*   i | ]"\}}|t jjv rt jj| |qS r   )r   ZExifTagsZTAGS)Ś.0ŚkŚvr   r   r   Ś
<dictcomp>D   s   žz*apply_exif_orientation.<locals>.<dictcomp>ZOrientationé   é   é   é   é   é   é   é   )Z_getexifŚAttributeErrorŚitemsŚgetr   ZImageOpsZmirrorZ	transposer   Z
ROTATE_180ZflipZ
ROTATE_270Z	ROTATE_90)ZimageZexifZorientationr   r   r   Śapply_exif_orientation;   s6    
ž
r3   )r   r   Śnumpyr   ZPIL.ExifTagsr   Z	PIL.ImageZPIL.ImageOpsr   r   r   r   r    r#   r3   r   r   r   r   Ś<module>   s   