Autor Beitrag
Nightfire
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Mo 26.03.07 11:34 
Hallo zusammen,

ich bin wie so viele ein blutiger Anfänger. Habe vor kurzem mit C# begonnen. Habe allerdings schon vorkenntnisse in anderen Sprachen.

Ich muss nun eine Grafik im Programm-Code erzeugen, was auch nicht das Problem ist. Wenn ich allerdings anschließend die Grafik etwas vergrößern will wird sie schwer Pixelisch. Aus diesem Grund würde ich gerne eine Vektorgrafik erzeugen, weil mein Bild eh nur aus zusammengesetzten Linien besteht. Finde nur keine passende Möglichkeit.

Bis jetzt benutze ich Graphics und zeichne da rein und speichere es danach als bmp. BMP´s sind allerdings Pixelbilder und keine Vektorbilder. Hat jemand eine Idee, wie ich das lösen kann?

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
using (MemoryStream mem = new MemoryStream())
{
    Bitmap bmp = new Bitmap(660122);
    using (Graphics gc = Graphics.FromImage(bmp))
    {

        gc.Clear(Color.White);
                
        //hier wird alles in gc gezeichnet (z.B. gc.DrawLine(..))
        Bild.zeichne(gc);

    }
    bmp.Save(mem, ImageFormat. Png);
    byte[] buffer = mem.ToArray();
    context.Response.OutputStream.Write(buffer, 0, buffer.Length);
    context.Response.ContentType = "image/bmp";
}


Ich hoffe ich habe keine wichtigen Informationen vergessen.

Vielen Dank für Eure Hilfe.

Nightfire
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Mo 26.03.07 15:35 
Verwalte doch irgendwo die Daten der einzelnen Grafikobjekte, damit Du es neu zeichnen kannst. Du wendest Deine Vergrößerungen/Änderungen einfach auf alle Objekte an und zeichnest das Bitmap dann neu.

Du brauchst einfach nur eine geeignete Klassenstruktur, damit Du so wenig Arbeit nachher wie möglich damit hast.
Nightfire Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Mo 26.03.07 16:58 
Hmm, ja prinzipiell ist es eine gute Idee. Aber es handelt sich um eine Webanwendung und ich muss einen MouseOver Event implementieren, dass die Grafik hervor hebt.

Wenn ich nun die Grafik neu zeichnen lasse, macht er einen Roundtrip, sprich er fordert vom Server das neue Grafik-Objekt an. Da das bei einer höheren Last des Servers ggf. etwas dauern kann, möchte ich das Bild auf der Oberfläche später einfach größer skalieren. Deshalb würde ich gerne eine Vektor- und keine Pixelgrafik zeichnen.

Gruß Nightfire