This version gets the text dimensions first and creates a new bitmap with the height taller than the text width + 10 (don't have to change the width). When positioning the text it puts it 5 below the original height so centering it in the new space below, and centres it horizontally. You'd need to do additional checks like ensuring the text isn't wider than the image, maybe reducing the font size if it is.
using (Bitmap bitmap = new Bitmap(sourcePath))
{
Brush brush = new SolidBrush(Color.Black);
Font font = new Font("Arial", 50, FontStyle.Italic, GraphicsUnit.Pixel);
Bitmap tempBitmap = new Bitmap(bitmap.Width, bitmap.Height);
Graphics tempGraphics = Graphics.FromImage(tempBitmap);
SizeF textSize = tempGraphics.MeasureString(text, font);
tempBitmap = new Bitmap(bitmap.Width, bitmap.Height + (int)textSize.Height + 10);
using (Graphics graphics = Graphics.FromImage(tempBitmap))
{
graphics.DrawImage(bitmap, 0, 0, bitmap.Width, bitmap.Height);
Point position = new Point((int)((bitmap.Width - textSize.Width) / 2), bitmap.Height + 5);
graphics.DrawString((text), font, brush, position);
tempBitmap.Save(destinationPathh, ImageFormat.Tiff);
}
}