Click here to Skip to main content
15,886,689 members
Articles / Desktop Programming / WPF

Convert XAML Vector Graphic to PNG

Rate me:
Please Sign up or sign in to vote.
4.87/5 (11 votes)
23 Oct 2012CPOL12 min read 74.3K   6.8K   43  
An introduction to the usage of vector graphics as a source of bitmap graphics.
<Canvas xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"><Canvas.Background>  <DrawingBrush><DrawingBrush.Drawing><DrawingGroup>
  <DrawingGroup x:Name="DrawingLayer">
    <DrawingGroup.ClipGeometry>
      <RectangleGeometry Rect="0,0,160,160" />
    </DrawingGroup.ClipGeometry>
    <DrawingGroup x:Name="g504" Transform="0.974243,-0.0887009,-0.0887009,-0.974243,9.63647,167.097">
      <GeometryDrawing x:Name="path505">
        <GeometryDrawing.Brush>
          <LinearGradientBrush StartPoint="0.0853642,-0.512065" EndPoint="-0.0971978,0.704975" MappingMode="RelativeToBoundingBox" SpreadMethod="Pad" Opacity="1">
            <LinearGradientBrush.Transform>
              <TransformGroup>
                <MatrixTransform>1.27999,-1.2809,0.380134,0.400852,0.41919,0.455775</MatrixTransform>
                <MatrixTransform>0.721719,0.0661415,-0.0681712,0.743868,71.5019,34.1323</MatrixTransform>
              </TransformGroup>
            </LinearGradientBrush.Transform>
            <GradientStop Color="#FFFFFFFF" Offset="0" />
            <GradientStop Color="#FF797979" Offset="1" />
          </LinearGradientBrush>
        </GeometryDrawing.Brush>
        <GeometryDrawing.Pen>
          <Pen Thickness="4" StartLineCap="Flat" EndLineCap="Flat" LineJoin="Round">
            <Pen.Brush>
              <SolidColorBrush Color="#FF0A0A05" Opacity="0.992157" />
            </Pen.Brush>
          </Pen>
        </GeometryDrawing.Pen>
        <GeometryDrawing.Geometry>
          <PathGeometry FillRule="Nonzero" Transform="0.721719,0.0661415,-0.0681712,0.743868,71.5019,34.1323" Figures="M44.43,62.2898C37.1854,68.5353 27.1814,78.5602 19.9369,84.8057 17.0367,82.316 14.1366,79.8262 11.2364,77.3365 12.4845,72.0907 11.0295,68.6983 13.0142,60.9025 24.0729,49.2556 36.4523,42.3082 54.9566,29.877 65.8336,22.998 92.9065,4.89576 112.14,-5.04536 116.66,-5.54386 122.265,-4.26715 117.093,0.778737 102.902,11.7117 58.2551,50.8894 44.43,62.2898z" />
        </GeometryDrawing.Geometry>
      </GeometryDrawing>
      <GeometryDrawing x:Name="path506">
        <GeometryDrawing.Brush>
          <LinearGradientBrush StartPoint="-0.01654,-0.546712" EndPoint="0.0148676,0.138341" MappingMode="RelativeToBoundingBox" SpreadMethod="Pad" Opacity="1">
            <LinearGradientBrush.Transform>
              <TransformGroup>
                <MatrixTransform>1.27999,-1.2809,0.380134,0.400852,0.419179,0.455777</MatrixTransform>
                <MatrixTransform>-0.635419,0.0100957,-0.0104055,-0.65492,77.7293,150.658</MatrixTransform>
              </TransformGroup>
            </LinearGradientBrush.Transform>
            <GradientStop Color="#FDFBDDB2" Offset="0" />
            <GradientStop Color="#F3EFA81A" Offset="1" />
          </LinearGradientBrush>
        </GeometryDrawing.Brush>
        <GeometryDrawing.Pen>
          <Pen Thickness="4" StartLineCap="Flat" EndLineCap="Flat" LineJoin="Round">
            <Pen.Brush>
              <SolidColorBrush Color="#FF580400" Opacity="0.992157" />
            </Pen.Brush>
          </Pen>
        </GeometryDrawing.Pen>
        <GeometryDrawing.Geometry>
          <PathGeometry FillRule="Nonzero" Transform="-0.635419,0.0100957,-0.0104055,-0.65492,77.7293,150.658" Figures="M88.2517,60.9959C76.4937,69.497 66.4176,73.7705 45.9812,76.0161 29.4079,79.1305 20.2923,84.5578 9.74771,91.1544 4.06707,88.6084 -3.18918,85.2674 -13.6094,81.1069 2.00637,64.983 20.1481,43.7033 29.7795,26.7873 43.5072,10.0617 41.779,11.2674 54.7576,1.18679 68.2677,-9.99392 88.4113,-5.37812 104.719,9.48852 110.996,16.4876 115.716,18.2612 115.11,26.1054 116.106,33.0665 109.074,46.0497 88.2517,60.9959z" />
        </GeometryDrawing.Geometry>
      </GeometryDrawing>
      <GeometryDrawing x:Name="path507">
        <GeometryDrawing.Brush>
          <SolidColorBrush Color="#FFFFFFFF" Opacity="0.99" Transform="-0.416333,0.00661491,-0.00681765,-0.429112,62.5479,143.979" />
        </GeometryDrawing.Brush>
        <GeometryDrawing.Pen>
          <Pen Thickness="4" StartLineCap="Flat" EndLineCap="Flat" LineJoin="Round">
            <Pen.Brush>
              <SolidColorBrush Color="#FF580400" Opacity="0.992157" />
            </Pen.Brush>
          </Pen>
        </GeometryDrawing.Pen>
        <GeometryDrawing.Geometry>
          <PathGeometry FillRule="Nonzero" Transform="-0.416333,0.00661491,-0.00681765,-0.429112,62.5479,143.979" Figures="M83.7482,60.5074C68.6024,70.745 63.1217,72.1999 49.7201,77.7034 40.7391,79.9238 29.4235,80.0424 19.1807,76.7322 16.4741,75.1627 9.66806,69.6656 9.71206,65.0753 13.7272,47.5642 18.5613,43.476 27.2888,30.3599 36.4232,19.8185 45.8289,11.0229 61.4173,3.48493 78.4697,-1.86214 85.3901,-0.320545 95.9459,7.70697 105.819,15.9492 107.722,22.5585 108.09,31.6186 105.426,44.3456 99.9534,48.3606 83.7482,60.5074z" />
        </GeometryDrawing.Geometry>
      </GeometryDrawing>
    </DrawingGroup>
    <DrawingGroup x:Name="g500" Transform="0.978272,0,0,0.978272,1.99148,0.351642">
      <GeometryDrawing x:Name="path119">
        <GeometryDrawing.Brush>
          <LinearGradientBrush StartPoint="0.0853642,-0.512065" EndPoint="-0.0971978,0.704975" MappingMode="RelativeToBoundingBox" SpreadMethod="Pad" Opacity="1">
            <LinearGradientBrush.Transform>
              <TransformGroup>
                <MatrixTransform>1.27999,-1.2809,0.380134,0.400852,0.41919,0.455775</MatrixTransform>
                <MatrixTransform>0.721719,0.0661415,-0.0681712,0.743868,71.5019,34.1323</MatrixTransform>
              </TransformGroup>
            </LinearGradientBrush.Transform>
            <GradientStop Color="#FFFFFFFF" Offset="0" />
            <GradientStop Color="#FF797979" Offset="1" />
          </LinearGradientBrush>
        </GeometryDrawing.Brush>
        <GeometryDrawing.Pen>
          <Pen Thickness="4" StartLineCap="Flat" EndLineCap="Flat" LineJoin="Round">
            <Pen.Brush>
              <SolidColorBrush Color="#FF0A0A05" Opacity="0.992157" />
            </Pen.Brush>
          </Pen>
        </GeometryDrawing.Pen>
        <GeometryDrawing.Geometry>
          <PathGeometry FillRule="Nonzero" Transform="0.721719,0.0661415,-0.0681712,0.743868,71.5019,34.1323" Figures="M44.43,62.2898C37.1854,68.5353 27.1814,78.5602 19.9369,84.8057 17.0367,82.316 14.1366,79.8262 11.2364,77.3365 12.4845,72.0907 11.0295,68.6983 13.0142,60.9025 24.0729,49.2556 36.4523,42.3082 54.9566,29.877 65.8336,22.998 92.9065,4.89576 112.14,-5.04536 116.66,-5.54386 122.265,-4.26715 117.093,0.778737 102.902,11.7117 58.2551,50.8894 44.43,62.2898z" />
        </GeometryDrawing.Geometry>
      </GeometryDrawing>
      <GeometryDrawing x:Name="path266">
        <GeometryDrawing.Brush>
          <LinearGradientBrush StartPoint="-0.01654,-0.546712" EndPoint="0.0148676,0.138341" MappingMode="RelativeToBoundingBox" SpreadMethod="Pad" Opacity="1">
            <LinearGradientBrush.Transform>
              <TransformGroup>
                <MatrixTransform>1.27999,-1.2809,0.380134,0.400852,0.419179,0.455777</MatrixTransform>
                <MatrixTransform>-0.635419,0.0100957,-0.0104055,-0.65492,77.7293,150.658</MatrixTransform>
              </TransformGroup>
            </LinearGradientBrush.Transform>
            <GradientStop Color="#FDFBDDB2" Offset="0" />
            <GradientStop Color="#F3EFA81A" Offset="1" />
          </LinearGradientBrush>
        </GeometryDrawing.Brush>
        <GeometryDrawing.Pen>
          <Pen Thickness="4" StartLineCap="Flat" EndLineCap="Flat" LineJoin="Round">
            <Pen.Brush>
              <SolidColorBrush Color="#FF580400" Opacity="0.992157" />
            </Pen.Brush>
          </Pen>
        </GeometryDrawing.Pen>
        <GeometryDrawing.Geometry>
          <PathGeometry FillRule="Nonzero" Transform="-0.635419,0.0100957,-0.0104055,-0.65492,77.7293,150.658" Figures="M88.2517,60.9959C76.4937,69.497 66.4176,73.7705 45.9812,76.0161 29.4079,79.1305 20.2923,84.5578 9.74771,91.1544 4.06707,88.6084 -3.18918,85.2674 -13.6094,81.1069 2.00637,64.983 20.1481,43.7033 29.7795,26.7873 43.5072,10.0617 41.779,11.2674 54.7576,1.18679 68.2677,-9.99392 88.4113,-5.37812 104.719,9.48852 110.996,16.4876 115.716,18.2612 115.11,26.1054 116.106,33.0665 109.074,46.0497 88.2517,60.9959z" />
        </GeometryDrawing.Geometry>
      </GeometryDrawing>
      <GeometryDrawing x:Name="path469">
        <GeometryDrawing.Brush>
          <SolidColorBrush Color="#FFFFFFFF" Opacity="0.99" Transform="-0.416333,0.00661491,-0.00681765,-0.429112,62.5479,143.979" />
        </GeometryDrawing.Brush>
        <GeometryDrawing.Pen>
          <Pen Thickness="4" StartLineCap="Flat" EndLineCap="Flat" LineJoin="Round">
            <Pen.Brush>
              <SolidColorBrush Color="#FF580400" Opacity="0.992157" />
            </Pen.Brush>
          </Pen>
        </GeometryDrawing.Pen>
        <GeometryDrawing.Geometry>
          <PathGeometry FillRule="Nonzero" Transform="-0.416333,0.00661491,-0.00681765,-0.429112,62.5479,143.979" Figures="M83.7482,60.5074C68.6024,70.745 63.1217,72.1999 49.7201,77.7034 40.7391,79.9238 29.4235,80.0424 19.1807,76.7322 16.4741,75.1627 9.66806,69.6656 9.71206,65.0753 13.7272,47.5642 18.5613,43.476 27.2888,30.3599 36.4232,19.8185 45.8289,11.0229 61.4173,3.48493 78.4697,-1.86214 85.3901,-0.320545 95.9459,7.70697 105.819,15.9492 107.722,22.5585 108.09,31.6186 105.426,44.3456 99.9534,48.3606 83.7482,60.5074z" />
        </GeometryDrawing.Geometry>
      </GeometryDrawing>
    </DrawingGroup>
  </DrawingGroup>
      </DrawingGroup></DrawingBrush.Drawing></DrawingBrush></Canvas.Background></Canvas>

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Germany Germany
The Windows Presentation Foundation (WPF) and C# are among my favorites and so I developed Edi

and a few other projects on GitHub. I am normally an algorithms and structure type but WPF has such interesting UI sides that I cannot help myself but get into it.

https://de.linkedin.com/in/dirkbahle

Comments and Discussions