instalar gratis fuentes fuente descargar c# .net fonts gdi+ drawstring

c# - gratis - fuentes windows 10



Uso de fuentes TTF personalizadas para la representación de imágenes DrawString (2)

Encontré una solución para usar fuentes personalizadas.

// ''PrivateFontCollection'' is in the ''System.Drawing.Text'' namespace var foo = new PrivateFontCollection(); // Provide the path to the font on the filesystem foo.AddFontFile("..."); var myCustomFont = new Font((FontFamily)foo.Families[0], 36f);

Ahora myCustomFont se puede usar con el método Graphics.DrawString según lo previsto.

Estoy usando GDI + en el lado del servidor para crear una imagen que se transmite al navegador del usuario. Ninguna de las fuentes estándar se ajusta a mis requisitos, por lo que quiero cargar una fuente TrueType y usar esta fuente para dibujar mis cadenas en el objeto gráfico:

using (var backgroundImage = new Bitmap(backgroundPath)) using (var avatarImage = new Bitmap(avatarPath)) using (var myFont = new Font("myCustom", 8f)) { Graphics canvas = Graphics.FromImage(backgroundImage); canvas.DrawImage(avatarImage, new Point(0, 0)); canvas.DrawString(username, myFont, new SolidBrush(Color.Black), new PointF(5, 5)); return new Bitmap(backgroundImage); }

myCustom representa una fuente que no está instalada en el servidor, pero para la cual tengo el archivo TTF.

¿Cómo puedo cargar el archivo TTF para que pueda usarlo en el renderizado de cadenas GDI +?


Solo para dar una solución más completa

using System; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Drawing; using System.Drawing.Text; public partial class Test : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { string fontName = "YourFont.ttf"; PrivateFontCollection pfcoll = new PrivateFontCollection(); //put a font file under a Fonts directory within your application root pfcoll.AddFontFile(Server.MapPath("~/Fonts/" + fontName)); FontFamily ff = pfcoll.Families[0]; string firstText = "Hello"; string secondText = "Friend!"; PointF firstLocation = new PointF(10f, 10f); PointF secondLocation = new PointF(10f, 50f); //put an image file under a Images directory within your application root string imageFilePath = Server.MapPath("~/Images/YourImage.jpg"); Bitmap bitmap = (Bitmap)System.Drawing.Image.FromFile(imageFilePath);//load the image file using (Graphics graphics = Graphics.FromImage(bitmap)) { using (Font f = new Font(ff, 14, FontStyle.Bold)) { graphics.DrawString(firstText, f, Brushes.Blue, firstLocation); graphics.DrawString(secondText, f, Brushes.Red, secondLocation); } } //save the new image file within Images directory bitmap.Save(Server.MapPath("~/Images/" + System.Guid.NewGuid() + ".jpg")); Response.Write("A new image has been created!"); } }