Text auf ein Bild schreiben und speichern...
-
Hallo
Ich bin dabei mir ein Progamm zu schreiben, welches Automatisch alle Bilder
aus einem vorher angegeben Ordner mit einem Text an einer Vorgegebenen Koordinate schreibt.Dazu wird das zu beschriftende Bild in eine picture_box geladen und soll dann beschriftet werden.
Zur zeit hänge ich daran das was ich in PaintEventArgs e eingeben muss.
Habe mir die Erklärung dazu im .Net 2.0 schon mehrmals durchgelesen. Bin daraus aber nicht ganz schlau geworden.Kann mir da jmd helfen?
MFG
tewes
-
Du willst die "beschriebenen" Bilder doch dann bestimmt wieder speichern - oder? Eine PictureBox dient im Prinzip ja nur der Anzeige des Bildes. Also holst du dir ein Graphics-Objekt für die Bilddatei (Graphics.FromBitmap oder so), malst dort deinen Text rein. Save()st die Datei wieder und lädst sie dann in die PictureBox.
Oder hab ich dich etwa falsch verstanden?Greetz
-
Manuel schrieb:
Du willst die "beschriebenen" Bilder doch dann bestimmt wieder speichern - oder? Eine PictureBox dient im Prinzip ja nur der Anzeige des Bildes. Also holst du dir ein Graphics-Objekt für die Bilddatei (Graphics.FromBitmap oder so), malst dort deinen Text rein. Save()st die Datei wieder und lädst sie dann in die PictureBox.
Oder hab ich dich etwa falsch verstanden?Greetz
So habe ich das auch verstanden
-
Lyrix schrieb:
Manuel schrieb:
Du willst die "beschriebenen" Bilder doch dann bestimmt wieder speichern - oder? Eine PictureBox dient im Prinzip ja nur der Anzeige des Bildes. Also holst du dir ein Graphics-Objekt für die Bilddatei (Graphics.FromBitmap oder so), malst dort deinen Text rein. Save()st die Datei wieder und lädst sie dann in die PictureBox.
Oder hab ich dich etwa falsch verstanden?Greetz
So habe ich das auch verstanden
Sach mal ... erst den Beitrag in dem "Close"-Thread ... okay ... aber hier das is ja wohl die Höhe ... willst du etwa deinen Postings-Zähler hochtreiben?
Greetz
-
Hallo,
danke für deine Hilfe.
So hat ich das gemeint....nur das ich nicht die Graphics.FormBitmap in meinem Programm habe.Jetzt habe ich das alles in eine Funktion geschreiben und da taucht auch schon mein nächstest problem auf.
Ich rufe mitschreiben();
die Funktion
public static void schreiben(PaintEventArgs e) { //Erstellt einen String in dem der zu schreibende Text steht. String drawString = "tewesonline.de.ms"; //Erstellt den "Stift" mit der Farbe und Schriftgröße. Font drawFont = new Font("Arial", 16); SolidBrush drawBrush = new SolidBrush(Color.Black); //Erstellt den Punkt wo geschrieben werden soll. PointF drawPoint = new PointF(150.0F, 150.0F); //Schreibt den Text mit den angegeben Werten an die angegebene Stelle. Graphics graphic = e.Graphics; graphic.DrawString(drawString, drawFont, drawBrush, drawPoint); }
auf.
Aber was muss ich bei "schreiben()" in die Klammern setzten. Was bewirgt das e dort. Habe es schon in vielen beispielen gesehen aber noch keine Erklärung gefunden.Mit freundlichen Grüßen,
tewes
-
Du musst der schreiben-Funktion einen Parameter übergeben. e ist der Name der Variablen bzw. des Funktionsparameters. PaintEventArgs ergibt sich eigentlich durch das Malen auf einem Objekt denke ich mal (schon lange her wo ich mal mit C# gemalt habe), sprich durch das Auslösen eines Events auf einem Objekt zum Zeichnen. Auf jedenfall musst du als Parameter eine Variable vom Typ PaintEventArgs übergeben, z.B.:
PaintEventArgs pea = new PaintEventArgs(...); // ... durch entsprechende Parameter ersetzen /* ... */ schreiben(pea);
-
Hallo Manuel,
nein eigentlich nicht. Wozu auch?
Aber naja.... Wollte eigentlich wie es auch in meinem Post hies nur deinen beitrag zustimmen
MFG
-
Is doch auch okay - fand s nur lustig. War nicht bös gemeint
Greetz
-
Moin.
Hab das Programm soweit das beim Compilieren wenigstes keine Fehler mehr kommen. Nur wenn ich das Programm ausführe schreibt es keinen Text auf das Bild.
public void schreiben() { this.Paint += new PaintEventHandler(paint); } //public void Hello() {this.Paint += new PaintEventHandler(f1_paint);} private void paint(object sender, PaintEventArgs e) { //Erstellt einen String in dem der zu schreibende Text steht. String drawString = "tewesonline.de.ms"; //Erstellt den "Stift" mit der Farbe und Schriftgröße. Font drawFont = new Font("Arial", 16); SolidBrush drawBrush = new SolidBrush(Color.DarkRed); //Erstellt den Punkt wo geschrieben werden soll. PointF drawPoint = new PointF(150.0F, 150.0F); //Schreibt den Text mit den angegeben Werten an die angegebene Stelle. Graphics graphic = e.Graphics; graphic.DrawString(drawString, drawFont, drawBrush, drawPoint); }
Wo ist der Fehler in meinem Code?
Danke für die Hilfe
MFG
tewes
-
Manuel schrieb:
Du willst die "beschriebenen" Bilder doch dann bestimmt wieder speichern - oder? Eine PictureBox dient im Prinzip ja nur der Anzeige des Bildes. Also holst du dir ein Graphics-Objekt für die Bilddatei (Graphics.FromBitmap oder so), malst dort deinen Text rein. Save()st die Datei wieder und lädst sie dann in die PictureBox.
Oder hab ich dich etwa falsch verstanden?Greetz
Also ich bastel immer noch mit .NET 1.1 aber ich glaube nicht das sich in
Hinsicht Graphics viel geändert hat!Und deshalb guckmal bei Dir in der Hilfe (MSDN) unter
Graphics GrafikkontextZuBildatei = Graphics.FromImage(....); . . . .
nach das gibt es im .NET 1.1 und das sollte auch in 2.0 vorhanden sein!
-
Image img = Image.FromFile("c:\\test.jpg"); Graphics gbmp = Graphics.FromImage(img); gbmp.DrawString("Hallo",this.Font,Brushes.Black,0,10); gbmp.Dispose(); img.Save("c:\\test0.jpg");
-
Cool thx.....mit dem zweiten C#-Code hat es geklappt...
Danke
tewes