Hallo zusammen,
ich habe eine Benutzeroberfläche, in der ich gerne einen Pfad auswählen will, in welchem mehrer
.tif Dateien enthalten sind.
Diese .tif Dateien sollen mit einem Text, den der Benutzer eingibt, quasi "gestempelt" werden, und
anschließend wieder abgespeichert werden (egal ob unter gleichem namen oder neu_datei1.tif
neu_datei2.tif)...
Wie kann ich das realisieren?
Mit
string strText = eingabetext.ToString();
Font font = new Font("Arial", 12, FontStyle.Bold | FontStyle.Underline);
Graphics graph = this.CreateGraphics();
graph.DrawImage(img, 0, 0);
graph.DrawString(strText, font, Brushes.Red, new Point(50, 50));
befindet sich das ja nur als "Hintergrundbild" auf meiner Benutzeroberfläche,
abspeichern geht hier auch nicht.
Kann mir da wer helfen?
Danke im Voraus.
Gruß Edzio
Hallo Edzio,
mit den Suchbegriffen "C# watermark" findest Du viele Beispiele dazu im Netz.
Ich benutze Teile von diesem Projekt :
Build a Simple Watermarking Utility in C#
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
Hallo Edzio,
verwende new Bitmap, dann Graphics.FromImage und wenn das Zeichnen fertig ist Image.Save.
herbivore
Hallo ihr beiden,
danke für die schnelle Antworten,
ich werde euren Tips folgen.
Habe nur mit "tif stempeln" gesucht
Gruß Edzio
so kurzes Zwischenergebnis, nach ein paar Fehlermeldungen mit 0x80004005 habe ich nun folgenden Code um ein tif zu öffnen, es zu "stempeln" und unter selben Namen abzuspeichern:
public void bildstempel()
{
string strText = verb_zu_def.get_dauertext();
string neuerPfad = verb_zu_def.get_pfad();
Font font = new Font("Arial", 72, FontStyle.Bold | FontStyle.Underline);
//Datei öffnen
Stream bildstream = new FileStream(neuerPfad, FileMode.Open, FileAccess.Read, FileShare.Read);
Bitmap bildwandel2 = new Bitmap(bildstream);
//erstellt aus geöffneter Datei eine Grafik
Graphics grafik = Graphics.FromImage(bildwandel2);
//Zeichnen Funktionen
grafik.DrawImage(bildwandel2, 0, 0);
grafik.DrawString(strText, font, Brushes.Red, new Point(150, 150));
//clonen um "Schreibschutz" zu vermeiden
Bitmap bildwandel = bildwandel2.Clone(new Rectangle(0, 0, bildwandel2.Width, bildwandel2.Height), PixelFormat.Format64bppPArgb);
bildwandel2.Dispose();
bildstream.Close();
//Speichern
try
{
bildwandel.Save(neuerPfad, ImageFormat.Tiff);
}
catch (Exception speicherfehler)
{
MessageBox.Show("Fehler:\n" + speicherfehler, "Fehler beim speichern", MessageBoxButtons.OK, MessageBoxIcon.Error);
//leeren - schließen
bildwandel.Dispose();
}
//leeren - schließen
bildwandel.Dispose();
}
Nun will ich versuchen, dass der Benutzer ein Verzeichnis auswählt, und alle .tif Dateien in diesem Verzeichnis bekommen den Stempel.
Falls ich nicht weiterkomme melde ich mich 😃
Gruß Edzio