Frage

Ich bin mit dem folgenden Code Text auf ein JPG-Bild zu zeichnen, aber es erfordert x / y-Koordinate percision auf, wo Sie den Text zu platzieren.

var bmp = new Bitmap("C:\\testing\\Given.jpg");
var gra = Graphics.FromImage(bmp);

var text = "The Berman's";
var font = new Font("Segoe Script", 24);
var brush = Brushes.Orange;
var point = new PointF(130, 224);

gra.DrawString(text, font, brush, point);
bmp.Save("C:\\testing\\Custom.jpg");

Wie würde ich mich über Text auf ein Bild zentriert? Ich vermute, es würde mit der Definition eine Art von Behälter zu tun haben (Rechteck vielleicht?), Die die Breite des Bildes ist und Zentrieren des Textes innerhalb das? Nicht sicher, was die beste Praxis wäre dies sein.

War es hilfreich?

Lösung

using(var sf = new StringFormat()
{
    Alignment = StringAlignment.Center,
    LineAlignment = StringAlignment.Center,
})
{
    gra.DrawString(text, font, brush, new Rectangle(0, 0, bmp.Width, bmp.Height), sf);
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top