SVG
SVG copied to clipboard
Image quality droped on patterns
Big upper part is not pattern rendered good precision and quality, back little pattern part bad quality, less presision.

Here is my SVG
<svg viewBox="0 0 400 400" xmlns="http://www.w3.org/2000/svg">
<defs>
<symbol id="el1" width="50" height="50">
<rect x="-5" y="-5" width="60" height="60">
</rect>
<line class="block" x1="-5" y1="-5" x2="55" y2="55" stroke="blue"></line>
<rect x="-18" y="-18" width="36" height="36" transform="rotate(45)" fill="green"></rect>
<circle cx="50" cy="50" r="26" fill="orange">
</circle>
<circle cx="50" cy="50" r="16" fill="olive">
</circle>
</symbol>
<symbol id="big1" width="100" height="100" viewBox="-50 -50 100 100">
<use width="50" height="50" href="#el1" transform=""/>
<use width="50" height="50" href="#el1" transform="scale(-1,-1)"/>
<use width="50" height="50" href="#el1" transform="scale(-1,1)"/>
<use width="50" height="50" href="#el1" transform="scale(1,-1)"/>
</symbol>
<pattern id="pat1" width="70" height="70" viewBox="0 0 200 200" patternUnits="userSpaceOnUse">
<use x="0" y="0" width="100" height="100" href="#big1" fill="pink" />
<use width="100" transform="translate(100,0)" height="100" href="#big1" fill="blue" />
<use x="0" y="100" width="100" height="100" href="#big1" fill="#ecffad" />
<use x="100" y="100" width="100" height="100" href="#big1" fill="#bbffad" />
</pattern>
</defs>
<rect class="block" x="0" y="0" width="400" height="400" fill="url(#pat1)"></rect>
<use x="120" y="120" width="100" height="100" href="#big1" fill="red" />
</svg>
And render code
SvgDocument svgDoc = SvgDocument.Open("1.svg");
System.Drawing.Bitmap bm = svgDoc.Draw();
ImageCodecInfo jgpEncoder = GetEncoder(ImageFormat.Jpeg);
System.Drawing.Imaging.Encoder myEncoder = System.Drawing.Imaging.Encoder.Quality;
EncoderParameters myEncoderParameters = new EncoderParameters(1);
EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, 100l);
myEncoderParameters.Param[0] = myEncoderParameter;
svgDoc.ShapeRendering = SvgShapeRendering.GeometricPrecision;
svgDoc.Height = new SvgUnit(SvgUnitType.Pixel, 1200);
svgDoc.Width = new SvgUnit(SvgUnitType.Pixel, 1200);
bm = svgDoc.Draw();
bm.Save("rez.jpg", jgpEncoder,myEncoderParameters);
ImageCodecInfo GetEncoder(ImageFormat format)
{
ImageCodecInfo[] codecs = ImageCodecInfo.GetImageDecoders();
foreach (ImageCodecInfo codec in codecs)
{
if (codec.FormatID == format.Guid)
{
return codec;
}
}
return null;
}