2010-10-11 21 views
6

Sto usando il seguente codice per disegnare il testo su un'immagine jpg ma richiede la percisione di coordinate x/y su dove posizionare il testo.Come disegnare il testo centrato su un jpg usando 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"); 

Come verifico il centraggio del testo su un'immagine? Immagino che avrebbe a che fare con la definizione di una sorta di contenitore (forse il rettangolo?) Che è la larghezza dell'immagine e centrando il testo all'interno di esso? Non sei sicuro di quale sarebbe la migliore pratica per questo.

risposta

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

ha funzionato per me! Grazie! – bychkov

+0

grazie! funziona ancora nel 2016! – aiden87