variable net example drawline dibujar c# drawing

net - c#escribe texto en mapa de bits



variable graphics c# (5)

Tengo el siguiente problema. Quiero hacer algunos gráficos en formato c # windows. Quiero leer el mapa de bits en mi programa y luego escribir un texto en este mapa de bits. Al final quiero que esta imagen cargue en pictureBox. Y es mi pregunta. ¿Cómo puedo hacerlo?

ejemplo, ¿cómo debe funcionar?

Bitmap a = new Bitmap(@"path/picture.bmp"); a.makeTransparent(); // ? a.writeText("some text", positionX, positionY); pictuteBox1.Image = a;

¿Es posible hacer?


Necesita usar la clase Graphics para escribir en el mapa de bits.

Específicamente, uno de los métodos DrawString .

Bitmap a = new Bitmap(@"path/picture.bmp"); using(Graphics g = Graphics.FromImage(a)) { g.DrawString(....); // requires font, brush etc } pictuteBox1.Image = a;


Pregunta muy antigua, pero solo tuve que crear esto para una aplicación hoy y encontré que la configuración que se muestra en otras respuestas no da como resultado una imagen limpia (posiblemente debido a que se agregaron nuevas opciones en versiones posteriores de .Net).

Suponiendo que quiere el texto en el centro del mapa de bits, puede hacer esto:

// Load the original image Bitmap bmp = new Bitmap("filename.bmp"); // Create a rectangle for the entire bitmap RectangleF rectf = new RectangleF(0, 0, bmp.Width, bmp.Height); // Create graphic object that will draw onto the bitmap Graphics g = Graphics.FromImage(bmp); // ------------------------------------------ // Ensure the best possible quality rendering // ------------------------------------------ // The smoothing mode specifies whether lines, curves, and the edges of filled areas use smoothing (also called antialiasing). // One exception is that path gradient brushes do not obey the smoothing mode. // Areas filled using a PathGradientBrush are rendered the same way (aliased) regardless of the SmoothingMode property. g.SmoothingMode = SmoothingMode.AntiAlias; // The interpolation mode determines how intermediate values between two endpoints are calculated. g.InterpolationMode = InterpolationMode.HighQualityBicubic; // Use this property to specify either higher quality, slower rendering, or lower quality, faster rendering of the contents of this Graphics object. g.PixelOffsetMode = PixelOffsetMode.HighQuality; // This one is important g.TextRenderingHint = TextRenderingHint.AntiAliasGridFit; // Create string formatting options (used for alignment) StringFormat format = new StringFormat() { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }; // Draw the text onto the image g.DrawString("yourText", new Font("Tahoma",8), Brushes.Black, rectf, format); // Flush all graphics changes to the bitmap g.Flush(); // Now save or use the bitmap image.Image = bmp;

Referencias



Bitmap bmp = new Bitmap("filename.bmp"); RectangleF rectf = new RectangleF(70, 90, 90, 50); Graphics g = Graphics.FromImage(bmp); g.SmoothingMode = SmoothingMode.AntiAlias; g.InterpolationMode = InterpolationMode.HighQualityBicubic; g.PixelOffsetMode = PixelOffsetMode.HighQuality; g.DrawString("yourText", new Font("Tahoma",8), Brushes.Black, rectf); g.Flush(); image.Image=bmp;


var bmp = new Bitmap(@"path/picture.bmp"); using( Graphics g = Graphics.FromImage( bmp ) ) { g.DrawString( ... ); } picturebox1.Image = bmp;