Click here to Skip to main content
15,896,063 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.5K   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>
    <GeometryDrawing x:Name="path422">
      <GeometryDrawing.Brush>
        <LinearGradientBrush StartPoint="-0.164401,-0.109194" EndPoint="0.140753,-0.0336744" MappingMode="RelativeToBoundingBox" SpreadMethod="Pad" Opacity="1">
          <LinearGradientBrush.Transform>
            <TransformGroup>
              <MatrixTransform>1.72489,1.17189,-0.0575163,0.540671,0.503708,0.486073</MatrixTransform>
              <MatrixTransform>1.41933,0,0,1.39879,-36.7348,-8.099</MatrixTransform>
            </TransformGroup>
          </LinearGradientBrush.Transform>
          <GradientStop Color="#FDFBDDB2" Offset="0" />
          <GradientStop Color="#F3EFA81A" Offset="1" />
        </LinearGradientBrush>
      </GeometryDrawing.Brush>
      <GeometryDrawing.Pen>
        <Pen Thickness="2.66142" StartLineCap="Flat" EndLineCap="Flat" LineJoin="Miter">
          <Pen.Brush>
            <SolidColorBrush Color="#FF580400" Opacity="0.992157" />
          </Pen.Brush>
        </Pen>
      </GeometryDrawing.Pen>
      <GeometryDrawing.Geometry>
        <PathGeometry FillRule="Nonzero" Transform="1.41933,0,0,1.39879,-36.7348,-8.099" Figures="M59.9188,52.7263C60.3197,51.1537 59.8507,36.5218 60.0284,32.5769 60.2469,28.4324 60.7169,22.0223 67.3688,17.0638 69.8842,14.7721 76.1229,12.8502 84.9269,13.0535 93.7309,12.8446 99.0423,13.8658 103.795,18.2432 108.076,22.0155 108.763,25.898 109.061,32.1531 108.745,32.6544 109.246,51.2922 108.922,51.7883L100.945,51.8835C101.256,51.4167 100.983,36.9449 101.359,32.3616 100.951,23.5476 94.3781,21.1508 84.8464,21.1703 75.3147,21.6021 67.3389,24.492 67.9674,34.7048 67.8403,38.6453 67.8409,51.1873 68.2332,52.7263L59.9188,52.7263z" />
      </GeometryDrawing.Geometry>
    </GeometryDrawing>
    <GeometryDrawing x:Name="path208">
      <GeometryDrawing.Brush>
        <RadialGradientBrush Center="6.63514,7.14789" RadiusX="0.452408" RadiusY="0.452408" GradientOrigin="6.63514,7.14789" MappingMode="RelativeToBoundingBox" SpreadMethod="Pad" Opacity="0.99">
          <RadialGradientBrush.Transform>
            <TransformGroup>
              <MatrixTransform>1.0883,0.23237,0,0.918863,0.288889,0.321804</MatrixTransform>
              <MatrixTransform>0.266536,-0.0647584,0,0.314212,48.5758,-12.3795</MatrixTransform>
            </TransformGroup>
          </RadialGradientBrush.Transform>
          <GradientStop Color="#FF6092A8" Offset="0" />
          <GradientStop Color="#FF0C5C7D" Offset="1" />
        </RadialGradientBrush>
      </GeometryDrawing.Brush>
      <GeometryDrawing.Pen>
        <Pen Thickness="9.27151" StartLineCap="Round" EndLineCap="Round" LineJoin="Round">
          <Pen.Brush>
            <SolidColorBrush Color="#FF0C5C7D" Opacity="0.99" />
          </Pen.Brush>
        </Pen>
      </GeometryDrawing.Pen>
      <GeometryDrawing.Geometry>
        <PathGeometry FillRule="Nonzero" Transform="0.266536,-0.0647584,0,0.314212,48.5758,-12.3795" Figures="M-50.9124,274.451C-52.1555,254.736,-35.0959,232.665,-12.9536,232.8L259.68,287.49C286.211,289.531,301.876,319.603,299.866,341.03L303.001,556.999 271.496,574.417 -20.6248,515.348 -49.1325,483.196 -50.9124,274.451z" />
      </GeometryDrawing.Geometry>
    </GeometryDrawing>
    <GeometryDrawing x:Name="path423">
      <GeometryDrawing.Brush>
        <LinearGradientBrush StartPoint="0.21519,0.140625" EndPoint="0.848101,0.882812" MappingMode="RelativeToBoundingBox" SpreadMethod="Pad" Opacity="1">
          <LinearGradientBrush.Transform>
            <TransformGroup>
              <MatrixTransform>1,3.24414E-08,0,1,5.47775E-08,7.1554E-08</MatrixTransform>
              <MatrixTransform>1.18557,0,0,1.18557,-16.0941,-18.3419</MatrixTransform>
            </TransformGroup>
          </LinearGradientBrush.Transform>
          <GradientStop Color="#FDFBDDB2" Offset="0" />
          <GradientStop Color="#F3EFA81A" Offset="1" />
        </LinearGradientBrush>
      </GeometryDrawing.Brush>
      <GeometryDrawing.Pen>
        <Pen Thickness="3.75" StartLineCap="Flat" EndLineCap="Flat" LineJoin="Miter">
          <Pen.Brush>
            <SolidColorBrush Color="#FF580400" Opacity="0.992157" />
          </Pen.Brush>
        </Pen>
      </GeometryDrawing.Pen>
      <GeometryDrawing.Geometry>
        <PathGeometry FillRule="EvenOdd" Transform="1.18557,0,0,1.18557,-16.0941,-18.3419" Figures="M72.9337,131.483L94.6372,131.483 89.0852,108.77 89.0852,108.77C94.1325,103.722 97.1609,99.1798 97.1609,94.6372 97.1609,88.0757 93.6277,82.5237 83.0284,82.5237 72.9338,82.5236 70.4101,89.0851 70.4101,95.1419 70.9148,102.713 78.9906,108.77 78.9906,108.77L72.9337,131.483z" />
      </GeometryDrawing.Geometry>
    </GeometryDrawing>
  </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