[C#] Problem mit speichern von Bildern

krizzelfix

Commander
Registriert
Sep. 2005
Beiträge
2.626
Moin

Ich habe ein programm geschreiben was einen kurzen Text auf ein Bild schreibt. Jetzt kann ich das Bild auch speichern wenn ich C:\\test0.jpg in die img.Save Methode schreibe. Wenn ich jetzt ein Variable eintrage klappt es auch noch wenn der Pafd ein anderer ist als der von wo das Bild geladen wurde.

Mein Code sieht momentan so aus:
Code:
private void schreiben(string path, int x, int y)
        {
            //Die Variablen x und y werden neu berechnet um eine neue Position zu erstellen.
            x = x - 390;
            y = y - 75;
            
            //Die Sachen zum schreiben des Textes auf dem Bild 
            //wird Initialisiert und Deklariert.
            Image img = Image.FromFile(path);
            Graphics gbmp = Graphics.FromImage(img);
            Font style = new Font("Times", 35, FontStyle.Bold | FontStyle.Italic);
            gbmp.DrawString("tewesonline.de.ms", style, Brushes.Silver, x, y);
            gbmp.Dispose();
            img.Save(path);
        }

Ich hoffe ihr konntet meine Problmstellung verstehen....

Danke im vorraus


tewes
 
Das ist schwierig, da Du keine Frage gestellt hast :-). Ich vermute mal einfach das der Text nicht in dem abgespeicherten Bild erscheint?

Ich würde mal das Dispose() nach dem Save() machen. Vielleicht geht es ja dann.

MfG

Arnd
 
Moin

Danke für deine Antwort.

Aber daran kann es eiegtnlich nicht liegen da das Programm immer bei dem Save(); abstürzt.
Habe mit etwas google mir den Code unten zusammen gebaut aber das funktioniert noch nicht so richtig.
Bei dem Common und dem Image img meckert der immer rum. Aber ich habe keine Ahnung was das Common sein soll oder was es bewirkt.
Vll kannst du mir weiter helfen.
Code:
FileStream fs = File.OpenRead(path + "\\" + fiTemp.ToString());
                    byte[] data = new byte[fs.Length];
                    Common.ReadWholeArray(fs, data);
                    fs.Close();

                    Stream tmpStream = new MemoryStream(data);

                    Bitmap img = new Bitmap(fpath + "\\" + fiTemp.ToString());
                    img.Dispose();

                    //Die Variablen x und y werden neu berechnet um eine neue Position zu erstellen.
                    x = x - 390;
                    y = y - 75;

                    //Die Sachen zum schreiben des Textes auf dem Bild 
                    //wird Initialisiert und Deklariert.
                    Image img = Image.FromFile(tmpStream);
                    Graphics gbmp = Graphics.FromImage(img);
                    Font style = new Font("Times", 35, FontStyle.Bold | FontStyle.Italic);
                    gbmp.DrawString("tewesonline.de.ms", style, Brushes.Silver, x, y);
                    gbmp.Dispose();
                    img.Dispose();
                    img.Save(path);


MFG

tewes
 
Du zerstörtst das IMG-Objekt, gibst den Speicher frei (Dispose) und willst dann das Bild speichern? Das muss schief gehen ;)
 
D.h.

Code:
 gbmp.DrawString("tewesonline.de.ms", style, Brushes.Silver, x, y);
                    img.Save(path);
                    gbmp.Dispose();
                    img.Dispose();

könnte besser funktionieren.

MfG

Arnd
 

Ähnliche Themen

Zurück
Oben