Pregunta

Estoy utilizando el siguiente código para dibujar texto en una imagen jpg pero requiere coordenadas X / Y percision sobre dónde colocar el texto.

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");

¿Cómo hago para centrar el texto en una imagen? Estoy adivinando que tendría que ver con la definición de una especie de contenedor (rectángulo tal vez?) Que es el ancho de la imagen y centrar el texto dentro de eso? No está seguro de cuál es la mejor práctica sería para esto.

¿Fue útil?

Solución

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);
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top