
    -Ph6                         d dl Z d dlZd dlZd dlZd dlmZ g dZdZdZdZ	dZ
d ZdZd	Zd
ZdZdZdZdZddd	ddddd	dddddZd Zd Zd Zd ZdS )    N)ElementTree)getgetDPI__version__z1.4.1                     )r
   r   r   r   r   r      r   	   
         c                 &   |t           k    rt          | dz  dz             S |t          k    rt          | dz  dz             S |t          k    rt          | dz  dz             S |t          k    rt          | dz  dz             S |t
          k    rt          | dz  dz             S |t          k    rt          | dz  dz             S |t          k    rt          | dz  dz             S |t          k    r| d	z  S |t          k    r| d
z  S |t          k    r| dz  S | S )Ng5B>g      ?gti0?gd?g
F%u?gK7A?RQ@gffffff9@   i	  i8c  )_UNIT_KMint
_UNIT_100M	_UNIT_10M_UNIT_1M
_UNIT_10CM_UNIT_CM_UNIT_MM_UNIT_0_1MM_UNIT_0_01MM_UNIT_UM)densityunits     I/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/imagesize.py_convertToDPIr'   *   s8   x7Y&,---			7X%+,,,			7W$s*+++			7V#c)***			7U?S()))			7T>C'(((			7T>C'(((			}			~			N    c                    t          j        d|           }|st          d| z            |                                \  }}|dk    rt	          |          S |dk    rt	          |          dz  dz  S |dk    rt	          |          dz  dz  dz  S |d	k    rt	          |          dz  S |d
k    rt	          |          dz  dz  S |dk    rt	          |          dz  dz  S |dk    rt	          |          S t          d|z            )Nz(\d+(?:\.\d+)?)?([a-z]*)$zunknown length value: %s cm`   r   mmr   inpcr   ptpxzunknown unit type: %s)rematch
ValueErrorgroupsfloat)valuematchedlengthr%   s       r&   _convertToPxr:   B   s   h3U;;G =3e;<<<>>##LFDrzzV}}	V}}r!D((	V}}r!D(2--	V}}r!!	V}}r!A%%	V}}r!A%%	V}}
,t3
4
44r(   c                    d}d}t          | t          j                  r| }nt          | d          }	 |                    d          }t          |          }|dk    rQ|dd         dv rE	 t          j        d|dd                   \  }}
n# t          j        $ r t          d	          w xY w|d
k    rh|
                    d          rS|dd         dk    rE	 t          j        d|dd
                   \  }}	n# t          j        $ r t          d          w xY w|dk    rZ|
                    d          rE	 t          j        d|dd                   \  }}	n6# t          j        $ r t          d          w xY w|dk    rj|
                    d          rT	 |                    d           d}d}d|cxk    rdk    rn n|dv r|                    |d           |                    d          }t          |          dk    r(|                    d          }t          |          dk    (t          |          }t          j        d|                    d                    d         dz
  }d|cxk    rdk    n |dv |                    dd           t          j        d|                    d                    \  }}n# t          j        t          f$ r t          d          w xY w|dk    rz|
                    d          re|                    d           	 t          j        d|                    d                    \  }}nE# t          j        $ r t          d           w xY w|dk    rT|
                    d!          r>t          j        d"|dd                   d         }|                    |           t          j        d|                    d                    d         }	t          |	          D ]}
t          j        d#|                    d                    \  }}}}|d$k    r1|d%k    rt          |d&z            }nO|dk    r|}nFt          d'          |d(k    r1|d%k    rt          |d&z            }n|dk    r|}nt          d)          |dk    r|dk    r n|dk    s|dk    rt          d*          n|dk    r|
                    d+          rt          j        d,|dd                   d         }|                    |           t          j        d-|                    d                    d         }	t          |	          D ]N}
t          j        d.|                    d                    \  }}}}|d$k    r|}n|d(k    r|}|dk    r|dk    r nO|dk    s|dk    rt          d*          n|dk    rB|
                    d/          r,t          j        d,|dd                   d         }|dk    r"t          d0                    |                    t          j        d1|dd                   d         }|                    |           t          j        d1|                    d                    d         }	t          |	          D ]N}
t          j        d2|                    d3                    \  }}}}|d$k    r|}n|d(k    r|}|dk    r|dk    r nO|dk    s|dk    rt          d4          n|d5k    r|
                    d6          s|
                    d7          r|                    d           |                    d8          }	 |                    d9          }t%          j        d:|                              d          }t%          j        d;|                              d          }n# t*          $ r t          d<          w xY wt-          |          }t-          |          }n|dd         d=k    rZ|dd         d>v rM|                    d           g }	 |                    d          }|                                r+|d@k    rt          dA          |dBk    r|                                 [|                                st          dC          |}|                    d          }|                                r.||z  }|                    d          }|                                .|                    t          |                     t          |          dk    rn"|                    dt6          j                   .|\  }}n|
                    dD          r|dd         dEk    r|dd         dFk    r!t          j        dG|dHdI                   \  }}n|dd         dJk    rMt          j        dK|d
dL         dMz             d         }t          j        dK|dLdI         dMz             d         }nn|dd         dNk    rQ|dOdP         }|d         dQz  dz  |d         z  dz   }|d%         dRz  dz  |d         dz  z  |d         dz  dz	  z  dz   }nt          dS          |                                 n# |                                 w xY w||fS )Tz
    Return (width, height) for a given img file content
    no requirements
    :type filepath: Union[bytes, str, pathlib.Path]
    :rtype Tuple[int, int]
    r	   rb   r   Nr   s   GIF87as   GIF89az<hhzInvalid GIF file      PNG

r      s   IHDRz>LLInvalid PNG filer   r      r         )         r
      >Hz>HHr   Invalid JPEG file      jP  

0   Invalid JPEG2000 files   MM *>Lz>HHLL   r   i   z?Invalid TIFF file: width column data type should be SHORT/LONG.i  z@Invalid TIFF file: height column data type should be SHORT/LONG.z?Invalid TIFF file: width and/or height IDS entries are missing.s   II* z<Lz<Hz<HHLLs   II+ z@Invalid BigTIFF file: Expected offset to be 8, found {} instead.z<Qz<HHQQ   zBInvalid BigTIFF file: width and/or height IDS entries are missing.r   s   <?xmls   <svgi   zutf-8z[^-]width="(.*?)"z[^-]height="(.*?)"zInvalid SVG file   Ps   123456Tr(   zInvalid Netpbm file   #z&Invalid character found on Netpbm files   RIFFs   WEBPs   VP8 z<HH      s   VP8Xz<I       s   VP8L      ?      zUnsupported WebP file)
isinstanceioBytesIOopenreadlenstructunpackerrorr4   
startswithseekord	TypeErrorranger   formatdecoder2   searchgroup	Exceptionr:   isspacereadlineisdigitappendosSEEK_CURclose)filepathheightwidthfhandleheadsizeftypebyteoffsetifdsizeitagdatatypecountdatabytesize_offsetsizesnext_chrbs                      r&   r   r   Z   s'    FE(BJ'' 'x&&h||B4yy2::$rr(&<<<5 &eT!B$Z @ @vv< 5 5 5 !34445 RZZDOO,@AAZd2b5kU\F\F\5 &eT"R%[ A Avv< 5 5 5 !34445 RZZDOO,@AAZ5 &eT!B$Z @ @vv< 5 5 5 !34445 QYY4??;77Y6Q%////4/////5<N3N3NLLq)))"<<??Dd))t++&||A d))t++IIE!=w||A??BQFD %////4/////5<N3N3N Q""" &eW\\!__ E EL), 6 6 6 !45556 RZZDOO,MNNZLL: &eW\\!__ E E< : : : !8999: QYY4??+>??Y]4ac33A6FLL   mD',,q//::1=G7^^  -3]7GLLQSDTDT-U-U*Xud#::1}} #D5L 1 1!Q $()jkkkCZZ1}}!$TE\!2!2!Q!%()klllB;;6R<<E{{fll !bccc +QYY4??+>??Y]4ac33A6FLL   mD',,q//::1=G7^^  -3]7GLLQSDTDT-U-U*Xud#:: EECZZ!FB;;6R<<E{{fll !bccc + QYY4??+>??Y$mD$qs)<<Q?O!## !c!j!jkq!r!rsss]4ad44Q7FLL   mD',,q//::1=G7^^  -3]7GLLQSDTDT-U-U*Xud#:: EECZZ!FB;;6R<<E{{fll !efff + QYYDOOH55Y9Q9QYLLOOO<<%%D5{{7++	"6==CCAFF#8$??EEaHH 5 5 5 !34445 ''E!&))FF "1"X$qs)y"8"8LLOOOE."<<??##%% s??$%:;;;t##$$&&&'')) O$%MNNN"<<??&&(( /H$D&||AH &&(( / SYY'''u::??R---9.: "ME66__W%% 	:$qt**?*?BrE{g%% &eT"R%[ A Avvbe''dDBK%,?@@CtT"R%[5-@AA!Dbe''BKQ4"9*ad2a7aD2I",1;!s
q?PQUVV !8999 	&=s   6j% * B 
j% B++,j%  C: 8j% :Dj% 8 E j% E99 j% D(K j% &K**3j% +M 	j% M**O=j% (A%_ j% _((J(j% %j;c                 
   d}d}t          | t                    st          |           } t          | d          5 }|                    d          }t          |          }|dk    r|dd         dv rn|dk    r*|                    d          rd	}|d	d         }	 |dd	         }|dk    rw	 t          j        d|d	d                   \  }	}
}n"# t          j	        $ r t          d          w xY w|r+t          |	t                    }t          |
t                    }n|	}|
}n~|dk    rnw	 t          j        d|dd                   \  }n"# t          j	        $ r t          d          w xY w||dz   z  }|                    |           |                    d          }n|dk    r|                    d          r	 |                    d           d}d}d|cxk    rdk    sDn |dk    r|                    dd           t          j        d|                    d                    \  }}	}
|dk    s|dk    r|	}|
}n0|dk    r*t          |	t                    }t          |
t                    }n|                    |d           |                    d          }t          |          dk    r(|                    d          }t          |          dk    (t          |          }t          j        d|                    d                    d         dz
  }d|cxk    rdk    >n Bn# t          j	        $ r t          d          w xY w|dk    r|                    d           r|                    d!           t          j        d|                    d                    d         d	z
  }|                    dd           d"}	 |dk    rp|                    d	          }|dd         }|d#k    rd
}|d	z  }nCt          j        d|dd                   \  }|                    |d	z
  d           ||z  }|dk    p|r|dk    r|                    d	          }|dd         }|d$k    rNt          j        d%|                    d                    \  }
}	}}t          |	|          }t          |
|          }nCt          j        d|dd                   \  }|                    |d	z
  d           ||z  }|dk    n&# t          j	        $ r}t          d&          d}~ww xY wddd           n# 1 swxY w Y   ||fS )'z
    Return (x DPI, y DPI) for a given img file content
    no requirements
    :type filepath: Union[bytes, str, pathlib.Path]
    :rtype Tuple[int, int]
    r	   r<   r?   r   Nr   r>   r@   r   Tr   s   pHYsz>LLBrB   s   IDATrO   r   r      r   rC   rD   rE      r   r
   z>BHHr   rI   rJ   rK   rL       Fs   res s   resdz>HHBBrN   )r\   bytesstrr_   r`   ra   re   rb   rc   rd   r4   r'   r   rf   r   rg   )rv   xDPIyDPIry   rz   r{   chunkOffsetchunk	chunkTypexDensityyDensityr%   dataSizer|   r}   
headerSizefoundResBox	boxHeaderboxTypeboxSizeyUnitxUnites                          r&   r   r     s    DDh&& !x==	h		 [:||B4yy 2::$rr(&<<<RZZDOO,@AAZKHE-!!A#J	''=39=qrr3S3S0(DD!< = = =();<<<= (,Xx@@,Xx@@'''))=$*M$ac
$C$C	!< = = =();<<<=8b=0KLL---#LL,,E/-2 QYY4??;77Y6Q%////4////}}Q***39=VW3Y3Y0h199		#+D#+DD!QYY#08#D#DD#08#D#DDLLq)))"<<??Dd))t++&||A d))t++IIE!=w||A??BQFD! %////4/////" < 6 6 6 !45556 RZZDOO,MNNZLLtW\\!__==a@1DJLLAK: 1nn 'QI'mG'))&*"a
%}T9RaR=AAHGLL1a000')J !1nn  .$q..$+LLOO	"+ABB-"g--?E}WV]VbVbceVfVf?g?g<Hhu#05#A#AD#05#A#AD!#)=y!}#E#EWq[!444"g-
 %q.. < : : : !8999:u[: [: [: [: [: [: [: [: [: [: [: [: [: [: [:x :s   A3T3-!CT3C..<T3+E
T3E**AT3E+L.,T3.MA>T3D4T T3T$TT$$T33T7:T7)r]   rs   r2   rb   	xml.etreer   __all__r   r   r   r   r   r   r   r    r!   r"   r#   
_UNIT_INCH_TIFF_TYPE_SIZESr'   r:   r   r    r(   r&   <module>r      s
   				 				 				  ! ! ! ! ! ! +
*
*  
	

      05 5 50y y yxi i i i ir(   