Beispiel #1
0
        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;
            }
        }
Beispiel #2
0
        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;
                    }
                }
            }
        }