سلام
من برای نوشتن متن روی عکس از کد زیر استفاده می کنم:

Bitmap bitMapImage = new System.Drawing.Bitmap(Server.MapPath("42-33354795.jpg"));
Graphics graphicImage = Graphics.FromImage(bitMapImage);

//Smooth graphics is nice.
graphicImage.SmoothingMode = SmoothingMode.AntiAlias;

//I am drawing a oval around my text.
graphicImage.DrawArc(new Pen(Color.Red, 3), 90, 235, 150, 50, 0, 360);

//Write your text.
graphicImage.DrawString("سلام", new Font("Tahoma", 12, FontStyle.Bold), SystemBrushes.WindowText, new Point(100, 210));

//Set the content type
Response.ContentType = "image/jpeg";

//Save the new image to the response output stream.
bitMapImage.Save(Response.OutputStream, ImageFormat.Jpeg);


و بدون مشکل انجام میشه. وقتی نام فونت رو تغییر میدم، فقط فونت هایی که به صورت پیش فرض در ویندوز نصب می شن رو پشتیبانی می کنه، و فونت هایی مثل zar، nazanin و ... رو پشتیبانی نمی کنه. این معنیش اینه که فونت ها روی سرور نصب نیستند.
راه حلی برای این مشکل وجود داره؟