2010-10-11 5 views
6

Ich verwende den folgenden Code, um Text auf ein JPG-Bild zu zeichnen, aber es erfordert x/y-Koordinate Percision auf, wo der Text zu platzieren.Wie zeichne zentrierten Text auf ein JPG mit system.drawing in C#

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 Text auf ein Bild zentrieren? Ich nehme an, es würde damit zu tun haben, irgendeine Art von Container zu definieren (Rechteck vielleicht?), Das ist die Breite des Bildes und zentriert den Text darin? Nicht sicher, was die beste Praxis dafür wäre.

Antwort

14
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); 
} 
+1

arbeitete für mich! Vielen Dank! – bychkov

+0

danke! funktioniert noch 2016! – aiden87