[gelöst] Screenshot mit Textergänzungen in Datei schreiben
-
Es soll für eine aktive Form ein Screenshot erstellt und mit Textergänzungen des Anwenders in eine Datei geschrieben werden. Der Screenshot und die Erstellung der Datei laufen, es fehlen noch die Textergänzungen.
private void ScreenshotDatei() { string datei = "screen001.png"; // Dateiname string inhalt = "screenshot001"; // Textergänzung Bezeichnung string datum = "03.04.2013"; // Textergänzung Datum // Grösse der Bitmap für Ausgabe festlegen Bitmap bmp = new Bitmap(this.Width + 100, this.Height + 130); // Screenshot in die Bitmap einpassen mit Platz für die strings this.DrawToBitmap(bmp, Rectangle.FromLTRB(50,100, this.Width+100, this.Height+100)); // hier fehlt die Einfügung der strings der Testergänzungen oberhalb des screenshots // .... // Datei speichern bmp.Save(datei, ImageFormat.Png); MessageBox.Show("ScreenshotDatei erstellt"); }
Ich möchte das direkt ohne Übertragung z.B. nach Word
-
Hol dir mittels
var g = Graphics.FromImage(bitmap);
eine Graphics-Referenz auf das Bitmap und schreib deine Ergänzungen dann mit DrawString da rein.
-
Gut, hatte ich inzwischen auch schon geschafft. Das gefragte Ziel ist erreicht. Nur leider erscheinen die Texteinfügungen fett = bold, egal FontStyle.Regular.
// Graphics g = Graphics.FromImage(bmp); var g = Graphics.FromImage(bmp); g.DrawString(inhalt, new Font("Microsoft San Serif", 10, FontStyle.Regular), Brushes.Black, new Point(50, 25)); g.DrawString(datum, new Font("Microsoft San Serif", 10, FontStyle.Regular), Brushes.Black, new Point(50, 45));
-
Das fehlt ein "s" im Fontnamen: "Microsoft Sans Serif"
Sonst wird halt ein Default-Font gewählt.Edit: Um nicht explizit einen Fontnamen zu wählen, der evtl. auf dem System nicht vorhanden ist, kann man auch einfach die FontFamily.GenericSansSerif-Eigenschaft benutzen. Für eine bestimmte Größe und/oder Style dann z.B.
new Font(FontFamily.GenericSansSerif, 10); new Font(FontFamily.GenericSansSerif, 10, FontStyle.Italic);
verwenden.
Desweiteren gibt es noch FontFamily.GenericMonospace sowie FontFamily.GenericSerif...