a
    þdŒ  ã                   @   sF   d dl Z d dlZd dlZddlT ddlmZ d dlmZ ddd„ZdS )	é    Né   )Ú*)ÚInvalidImageDataError)Ú_webpc           
      C   sú  | dd… dkrt dƒ‚d}tjdkp.t|tƒ}|rN|dd… dkrN|}d	}n¤|r||dd
… dkr||dd… dkr||}d}nvt|dƒ}| ¡ }W d  ƒ n1 s¤0    Y  |dd… dkrÄd	}n*|dd
… dkrê|dd… dkrêd}nt‚d}|d	kr,dt 	dt
| ƒd ¡ |  } t|ƒ}t|| ƒ}	n"|dkrN| dd… } t || ¡}	t|tjƒrr| |	¡ | d¡ n„|r°t|dƒ}| |	¡ W d  ƒ n1 s¤0    Y  nF|rît|dƒ}| |	¡ W d  ƒ n1 sâ0    Y  nt dƒ‚dS )z¡
    py:function:: piexif.insert(exif_bytes, filename)

    Insert exif into JPEG.

    :param bytes exif_bytes: Exif as bytes
    :param str filename: JPEG
    r   é   s   Exif  zGiven data is not exif dataF)é   r   r   é   s   ÿØZjpegé   s   RIFFé   é   s   WEBPZwebpÚrbNTs   ÿáz>Hzwb+z.Give a 3rd argument to 'insert' to output file)Ú
ValueErrorÚsysÚversion_infoÚ
isinstanceÚstrÚopenÚreadr   ÚstructÚpackÚlenZsplit_into_segmentsZmerge_segmentsr   ÚinsertÚioÚBytesIOÚwriteÚseek)
ZexifÚimageZnew_fileZoutput_fileZmaybe_imageZ
image_dataÚ	file_typeÚfÚsegmentsZnew_data© r    úW/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/piexif/_insert.pyr   	   sF    	$& 


,,r   )N)	r   r   r   Ú_commonÚ_exceptionsr   Zpiexifr   r   r    r    r    r!   Ú<module>   s   