static void Main(string[] args) { if (args.Length != 2) { Console.WriteLine("MetafileTool - Convert Windows metafile into image file and vice verca."); Console.WriteLine("Usage:\n\tMetafileTool <input file> <output file>"); return; } switch (Path.GetExtension(args[0]).ToLower()) { case ".emf": case ".wmf": using (var metafile = new Metafile(args[0])) using (var bitmap = MetafileUtility.MetafileToBitmap(metafile)) bitmap.Save(args[1]); break; default: using (var bitmap = new Bitmap(args[0])) using (var metafileStream = MetafileUtility.BitmapToMetafileMemoryStream(bitmap)) using (var targetStream = File.Create(args[1])) metafileStream.WriteTo(targetStream); break; } }
private void exportAsButton__Click(object sender, EventArgs e) { if (metafileCanvas_.Metafile == null) { return; } using (var saveFileDialog = new SaveFileDialog()) { var filters = new string[] { "Bitmap Files (*.bmp;*.dib)|*.bmp;*.dib", "JPEG Files (*.jpg;*.jpeg)|*.jpg;*.jpeg", "PNG Files (*.png)|*.png", "Windows Meta Files (*.emf;*.wmf)|*.emf;*.wmf", "All Files (*.*)|*.*", }; saveFileDialog.FileName = Path.GetFileNameWithoutExtension(filePath_); saveFileDialog.Filter = string.Join("|", filters); saveFileDialog.FilterIndex = 3; if (saveFileDialog.ShowDialog() == DialogResult.OK) { switch (Path.GetExtension(saveFileDialog.FileName).ToLower()) { case ".emf": #if false // TODO: // If orientation is changed, then the exported emf file can not be opened with // this application anymore. metafileCanvas_.Metafile.Save(saveFileDialog.FileName, ImageFormat.Emf); #else var metafile = metafileCanvas_.Metafile; MetafileUtility.CopyMetafile(ref metafile, saveFileDialog.FileName); metafileCanvas_.Metafile = metafile; #endif break; case ".wmf": metafile = metafileCanvas_.Metafile; MetafileUtility.MetafileToWMF(ref metafile, saveFileDialog.FileName); metafileCanvas_.Metafile = metafile; break; default: using (var bitmap = MetafileUtility.MetafileToBitmap(metafileCanvas_.Metafile)) { bitmap.Save(saveFileDialog.FileName); } break; } } } }