Announcement

Collapse
No announcement yet.

Vektorgrafik in .NET erstellen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Vektorgrafik in .NET erstellen

    Hallo,

    ich suche nach Informationen wie in .NET ein Vektorgrafikprogramm erstellt werden kann.

    Das Ziel ist ein Programm in dem man Grafiken (Rechtecke, Kreise, ...) zeichnen kann und diese dann im Nachgang auch wieder verändert (Größe, Farbe, Füllung,...) werden können. Man sollte also gezeichnete Objekte markieren und verändern können. Zu guter letzt muss die Zeichnung dann noch gespeichert werden können.

    Es wäre Klasse wenn jemand eine Info hat wie so etwas gemacht werden kann.

    Im Voraus besten Dank.

    Jürgen

  • #2
    Hallo,

    ich versuche eine Vektorgrafik im WMF Format mithilfe der Klasse Metafile zu erzeugen. Unten ist der Beispielcode, der zwar funktioniert. Die ausgegebene Datei ist allerdings im PNG-Format, wie z.B. ein Hexeditor zeigt.


    Code:
    using System;
    using System.Drawing;
    using System.Drawing.Imaging;
    using System.IO;
    using System.Windows.Forms;
    
    class CreateMetafileMemory : Form
    {
        MemoryStream ms = new MemoryStream();
        Graphics g;
    
        public static void Main()
        {
            Application.Run(new CreateMetafileMemory());
    
        }
    
        public CreateMetafileMemory()
        {
            Graphics grfx = CreateGraphics();
            MemoryStream ms = new MemoryStream();
            IntPtr ipHdc = grfx.GetHdc();
    
            Metafile mf = new Metafile(ms, ipHdc);
            grfx.ReleaseHdc(ipHdc);
            grfx.Dispose();
            grfx = Graphics.FromImage(mf);
    
            grfx.FillEllipse(Brushes.Gray, 0, 0, 100, 100);
            grfx.DrawEllipse(Pens.Black, 0, 0, 100, 100);
            grfx.DrawArc(new Pen(Color.Red, 10), 20, 20, 60, 60, 30, 120);
            grfx.Dispose();
            mf.Save(@"C:\file.emf", ImageFormat.Emf);
            mf.Save(@"C:\file.wmf", ImageFormat.Wmf);
        }
    }

    Comment

    Working...
    X