
    ,g                     0    d Z ddlmZmZ ddlmZ d Zd Zy)zDraw image and svg tags.   )bounding_boxis_valid_bounding_box)preserve_ratioc                    | j                  |j                  d      |j                  d      |      \  }}| j                  j                  ||       | j                  |k(  r| j
                  | j                  }}n|j                  d      |j                  d      }}d||fv rXd|j                  _        t        | ||d	      }t        |      r|d
   |d   z   }|d   |d   z   }nd
x}}d|j                  _        n| j                  |||      \  }}|j                  | ||       t        | ||||      \  }}	}
}| j                  |k7  rg|j                  dd      dk(  rR| j                  j                  d
d
||       | j                  j                          | j                  j                          | j                  j                  ||	|
|       y)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_ys               m/home/viktor/gitlab-persoonlijk/factuur-applicatie/venv/lib/python3.12/site-packages/weasyprint/svg/images.pyr   r      s   99TXXc]DHHSM9=DAqJJ1"
xx4**C,?,?v)488H+=vE6?"#&D sD)DAC$S)AQQ#a&!""#(D IIeVY?ME6c5&)1?T9eV2-.GWk;
xx4DHHZ:hF

Q5&1



JJ7gL    c                 B   | j                  |j                  d      |j                  d      |      \  }}| j                  j                  ||       |j                  d      }|j	                  |xs | j
                        }| j                  j                  |d      }|y| j                  |j                  d      |j                  d	      |      \  }}	|j                  d
|      \  }
}}|
 |||s|	sd\  }
}n!|s||	z  |	}}
n|||z  }}
n|
||z  }
n||
|z  }|xs |
}|	xs |}	t        | ||||	dd|
|f      \  }}}}| j                  j                  dd||	       | j                  j                          | j                  j                          | j                  j                          | j                  j                  ||||       |j                  | j                  |
||j                  j                  dd             | j                  j!                          y)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_hrefr0   contextget_image_from_uriget_intrinsic_sizer   r#   r$   r%   
push_statedrawattrib	pop_state)r   r&   r'   r   r   base_urlr0   imager   r   intrinsic_widthintrinsic_heightintrinsic_ratior)   r*   r+   r,   s                    r-   r>   r>   $   s   99TXXc]DHHSM9=DAqJJ1"xxDEH
--+CGG
,CKK**sY*OE}IIdhhw/(1CYOME6  I. 7O%#3#;"508-O-&(& .O 16u7N-O		 ),<<		!*_<$_E''F1?T9eV	
A 0123.GWk; JJAuf-JJOOJJNNJJJJ7gL	JJ

O%5(96B   JJr.   N)__doc__r   r   utilsr   r   r>    r.   r-   <module>rE      s     = !M:(r.   