o
    Zh0h                     @   s4   d Z ddlmZmZ ddlmZ dd Zdd ZdS )	zDraw image and svg tags.   )bounding_boxis_valid_bounding_box)preserve_ratioc                 C   sN  |  |d|d|\}}| jj||d | j|kr$| j| j}}nD|d|d}}d||fv r_d|j_t	| ||dd	}t
|rV|d
 |d  }|d |d  }nd
 }}d|j_n	|  |||\}}|| || t| ||||\}}	}
}| j|kr|dddkr| jd
d
|| | j  | j  | jj||	|
|d dS )zDraw svg tags.xyefwidthheightNgT)stroke       r      svgoverflowhiddenadr   r	   )pointgetstream	transformtreeconcrete_widthconcrete_height_etree_nodetagr   r   set_svg_sizer   	rectangleclipend)r   node	font_sizer   r   r
   r   boxscale_xscale_ytranslate_xtranslate_y r+   K/var/www/html/rh/venv/lib/python3.10/site-packages/weasyprint/svg/images.pyr      s.   




r   c              
   C   s  |  |d|d|\}}| jj||d |d}||p"| j}| jj|dd}|du r2dS |  |d|d	|\}}	|d
|\}
}}|
du rq|du rq|du sZ|s_|	s_d\}
}n#|si||	 |	}
}n||| }
}n|
du rz|| }
n|du r|
| }|p|
}|	p|}	t	| ||||	dd|
|f\}}}}| j
dd||	 | j  | j  | j  | jj||||d |j| j|
||jddd | j  dS )zDraw image tags.r   r   r   z*{http://www.w3.org/XML/1998/namespace}basezimage/*)urlforced_mime_typeNr
   r   r   )i,     r   r   zimage-renderingauto)image_rendering)r   r   r   r   get_hrefr-   contextget_image_from_uriget_intrinsic_sizer   r!   r"   r#   
push_statedrawattrib	pop_state)r   r$   r%   r   r   base_urlr-   imager
   r   intrinsic_widthintrinsic_heightintrinsic_ratior'   r(   r)   r*   r+   r+   r,   r;   $   sJ   








r;   N)__doc__r   r   utilsr   r   r;   r+   r+   r+   r,   <module>   s
    