Metafiles are a way to save scalable vectory graphics. This blog creates a simple image containing a diagonal line. It also shows the proper way to save the metafile, as the class method saves it as a png file.
MSDN article on MetaFiles: http://msdn2.microsoft.com/en-us/library/ms536391.aspx
using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
MemoryStream metafileStream = new MemoryStream();
Graphics offScreenDC = Graphics.FromHwndInternal(IntPtr.Zero);
IntPtr myImagePointer = offScreenDC.GetHdc();
Metafile meta =
//new Metafile(myImagePointer, EmfType.EmfOnly); //unable to do memoryStreamSave
new Metafile(metafileStream, myImagePointer, EmfType.EmfOnly); //able to do memoryStreamSave
Graphics aGraphic = Graphics.FromImage(meta);
aGraphic.DrawLine(new Pen(Brushes.Black), new Point(0, 0), new Point(29, 29));
aGraphic.Dispose(); //Dispose must be called to flush the drawing instructions.
offScreenDC.ReleaseHdc();
meta.Save(@"c:\metaSave.wmf"); //saves as a png file.
FileStream aWrite = new FileStream(@"c:\StreamSave.wmf",FileMode.Create); //saves as a wmf file
metafileStream.WriteTo(aWrite);
Monday, February 25, 2008
Subscribe to:
Post Comments (Atom)

1 comments:
You are my hero today.
Post a Comment