سؤال

أنا أستخدم الكود التالي لرسم نص على صورة JPG ولكنه يتطلب قرعًا من الإحداثيات X/Y على مكان وضع النص.

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

كيف يمكنني ركوب النص على صورة؟ أظن أن الأمر سيكون له علاقة بتحديد نوع من الحاوية (ربما المستطيل؟) وهذا هو عرض الصورة ويركز النص ضمن ذلك؟ لست متأكدًا من أفضل الممارسات لهذا الغرض.

هل كانت مفيدة؟

المحلول

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);
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top