o Վa(4 @sddlZddlZddlZddlZddlmZdZdZdZdZ dZ dZ dZ d Z d Zd Zd Zdddd d dddd d d d d ZddZddZddZddZdS)N) ElementTree) rrrr r r r cCs|tkr t|ddS|tkrt|ddS|tkr$t|ddS|tkr0t|ddS|tkrg?gti0?gd?g F%u?gK7A?RQ@gffffff9@i i8c) _UNIT_KMint _UNIT_100M _UNIT_10M_UNIT_1M _UNIT_10CM_UNIT_CM_UNIT_MM _UNIT_0_1MM _UNIT_0_01MM_UNIT_UM)densityunitr!+/usr/lib/python3/dist-packages/imagesize.py _convertToDPI#s*r#cCstd|}|std||\}}|dkrt|S|dkr(t|ddS|dkr6t|dddS|d kr@t|dS|d krLt|dd S|d krXt|dd S|d kr`t|Std|)Nz(\d+(?:\.\d+)?)?([a-z]*)$zunknown length value: %scm`rmmrinpcr ptpxzunknown unit type: %s)rematch ValueErrorgroupsfloat)valuematchedlengthr r!r!r" _convertToPx;s&     r4c Csd}d}t|tjr |}nt|d}z|d}t|}|dkrE|dddvrEztd|dd\}}WnStjyDt d w|dkrr| d rr|d d d krrztd|d d\}}Wn/tjyqt dw|d kr| d rztd|dd \}}Wntjyt dw|dkr| drzj| dd}d}d|krdkrnn|dvr| |d|d}t |dkr|d}t |dkst |}td|ddd}d|krdkrnq|dvs| ddtd|d\}}Wntjt fyt dw|d krH| drH| dztd|d\}}WnutjyGt dw|dkr| d rtd!|ddd}| |td|dd} t| D]V} td"|d \} } } }| d#kr| d$krt|d%}n)| dkr|}n!t d&| d'kr| d$krt|d%}n | dkr|}nt d(|dkr|dkrnqs|dks|dkrt d)n|dkrA| d*rAtd+|ddd}| |td,|dd} t| D]+} td-|d \} } } }| d#kr|}n| d'kr#|}|dkr/|dkr/nq|dks;|dkr?t d)n|dkr| d.rtd+|ddd}|dkrdt d/|td0|dd d}| |td0|dd} t| D]+} td1|d2\} } } }| d#kr|}n| d'kr|}|dkr|dkrnq|dks|dkrt d3n |d4kr | d5s| d6r | d|d7}z|d8}td9|d}td:|d}Wn tyt d;wt|}t|}n|dddLLInvalid PNG filer rr)r>Hz>HHr Invalid JPEG file jP 0Invalid JPEG2000 filesMM*>Lz>HHLLriz?Invalid TIFF file: width column data type should be SHORT/LONG.iz@Invalid TIFF file: height column data type should be SHORT/LONG.z?Invalid TIFF file: width and/or height IDS entries are missing.sII*zLLBr:sIDATrGrrrr;r<r=r rz>BHHr rArBrCrD Fsres sresdz>HHBBrF)rMbytesstrrPrQrRrVrSrTrUr.r#rrWrrX)rgxDPIyDPIrjrkrl chunkOffsetchunk chunkTypexDensityyDensityr dataSizermrn headerSize foundResBox boxHeaderboxTypeboxSizeyUnitxUniter!r!r"getDPIs                                \ \ \ \ \ \\r)rNrdr,rS xml.etreerrrrrrrrrrr _UNIT_INCH_TIFF_TYPE_SIZESr#r4ryrr!r!r!r"sD  1