@@ -1054,10 +1054,10 @@ void Drawable::paintDebugElement (Graphics& g, const SVGElement& element)
10541054Font Drawable::resolveFont (const SVGElement& element) const
10551055{
10561056 if (document == nullptr )
1057- return Font ().withHeight (element.fontSize .value_or (12 .0f ));
1057+ return Font ().withHeight (element.fontSize .value_or (16 .0f ));
10581058
10591059 const auto & options = document->getParseOptions ();
1060- const auto fontSize = element.fontSize .value_or (12 .0f );
1060+ const auto fontSize = element.fontSize .value_or (16 .0f );
10611061 const auto fontWeight = element.fontWeight .value_or (400 );
10621062 const auto fontItalic = element.fontItalic .value_or (false );
10631063
@@ -1089,7 +1089,7 @@ void Drawable::renderTextElement (Graphics& g, const SVGElement& element)
10891089 position.setY (position.getY () + element.textDy ->getFirst ());
10901090
10911091 const auto font = resolveFont (element);
1092- const auto fontSize = element.fontSize .value_or (12 .0f );
1092+ const auto fontSize = element.fontSize .value_or (16 .0f );
10931093
10941094 StyledText styledText;
10951095 {
@@ -1134,9 +1134,26 @@ void Drawable::renderImageElement (Graphics& g, const SVGElement& element)
11341134 if (! element.imageBounds )
11351135 return ;
11361136
1137+ auto drawImage = [this , &g, &element] (const Image& image)
1138+ {
1139+ if (! image.isValid ())
1140+ return ;
1141+
1142+ const Rectangle<float > imageSourceBounds (0 .0f , 0 .0f , static_cast <float > (image.getWidth ()), static_cast <float > (image.getHeight ()));
1143+ const auto imageTransform = calculateTransformForTarget (imageSourceBounds,
1144+ *element.imageBounds ,
1145+ element.preserveAspectRatioFitting ,
1146+ element.preserveAspectRatioJustification );
1147+ const auto fittedImageBounds = imageSourceBounds.transformed (imageTransform);
1148+
1149+ const auto savedState = g.saveState ();
1150+ g.setClipPath (*element.imageBounds );
1151+ g.drawImage (image, fittedImageBounds);
1152+ };
1153+
11371154 if (element.image )
11381155 {
1139- g. drawImage (*element.image , *element. imageBounds );
1156+ drawImage (*element.image );
11401157 return ;
11411158 }
11421159
@@ -1145,7 +1162,7 @@ void Drawable::renderImageElement (Graphics& g, const SVGElement& element)
11451162 if (document != nullptr )
11461163 {
11471164 if (auto image = SVGParser::loadImageFromHref (document->getParseOptions (), *element.imageHref ))
1148- g. drawImage (*image, *element. imageBounds );
1165+ drawImage (*image);
11491166 }
11501167 }
11511168}
0 commit comments