C# Text in Bild einfügen?
Moin, ich habe folgenes Bild als .png Datei:
Wie kann ich in C# in feste Bereiche eines Bildes Text in Form von Strings einfügen? Also das ich vorher bspw folgenes Layout festlege:
Sodass ich dann in C# die Texte ausfüllen kann, und dann das Bild mit den Texten habe.
----------
Am liebsten wäre es mir wenn ich das Bild vorher in irgendein Programm rein werfe, darin die text positionen festlege, das dann als datei wieder raus bekomme, mit irgendeiner Bibliothek in c# diese datei einlese und dann einfach darauf zugreife, also das die Text Positionen in der bild datei eingespeichert sind. Also ich nicht einfach in C# text drüberlege und dann die pixelposition finden muss, sondern das schon vorher festlege
1 Antwort
Bau dir die Oberfläche mit XAML in WPF/Avalonia/MAUI nach. Es gibt gerade in diesem Fall keinen Grund, auf Bilder zurückgreifen zu müssen. Die Positionierung ist viel einfacher, wenn alle Elemente in einem dynamischen Layout vorliegen.
Dann kannst du doch stattdessen Gimp, Photoshop o.ä. nehmen. Auf einer Ebene lädst du das Bild hinein, auf einer weiteren Ebene legst du dir ein Textelement an und positionierst es. Das alles speicherst du als Projekt des jeweiligen Grafikprogramms.
Deine Vorlage könnte man aber ebenso als SVG umsetzen. Grafikprogramme dafür gibt es genügend, bei einem Export musst du jedoch darauf aufpassen, dass dir der dynamische Text nicht als Pfadelement serialisiert wird. Wenn du anschließend den Text ändern möchtest, brauchst du die Datei lediglich in einem Texteditor öffnen und das entsprechende text-Element anpassen. Für eine Konversion zu PNG hilft erneut ein Grafikprogramm.
Wenn es in C# sein muss, suche dir passende Programmbibliotheken. Du brauchst einen SVG Parser und einen SVG Renderer. Die SVG.NET-Bibliothek erfüllt beide Voraussetzungen. So könnte man z.B. mit der Draw-Methode das Dokument auf eine Bitmap zeichnen und die via Save als PNG speichern.
Danke. Ich bastle mir jetzt den Hintergrund als PNG Datei in Photoshop (Da habe ich am meisten Erfahrung mit.) Dann packe ich diese in eine svg datei, mache die variablen texte darüber und ändere diese dann in c#.
Danke!
Ich habe von den allen drei keine Ahnung. Wenn ich nur ein Template erstellen will, dort dann den Text einfügen und als .png exportieren will, welches soll ich dann davon nehmen? Ich arbeite mit VSCode, habe aber auch Visual Studio installiert. Und wie gesagt bevorzuge ich grafisches Designen (mit Designer) als mit-Code-Designen.