¿Alguien puede guiar cómo generar imágenes desde el texto de entrada. La imagen puede tener cualquier extensión no importa.Cómo generar una imagen desde el texto en vuelo en tiempo de ejecución
Respuesta
Ok, suponiendo que desea dibujar una cadena en una imagen en C#, que se va a necesitar utilizar el espacio de nombres System.Drawing aquí:
private Image DrawText(String text, Font font, Color textColor, Color backColor)
{
//first, create a dummy bitmap just to get a graphics object
Image img = new Bitmap(1, 1);
Graphics drawing = Graphics.FromImage(img);
//measure the string to see how big the image needs to be
SizeF textSize = drawing.MeasureString(text, font);
//free up the dummy image and old graphics object
img.Dispose();
drawing.Dispose();
//create a new image of the right size
img = new Bitmap((int) textSize.Width, (int)textSize.Height);
drawing = Graphics.FromImage(img);
//paint the background
drawing.Clear(backColor);
//create a brush for the text
Brush textBrush = new SolidBrush(textColor);
drawing.DrawString(text, font, textBrush, 0, 0);
drawing.Save();
textBrush.Dispose();
drawing.Dispose();
return img;
}
Este código medirá la primera cadena, una y luego crea una imagen del tamaño correcto.
Si desea guardar la devolución de esta función, simplemente llame al método Guardar de la imagen devuelta.
La línea "Imagen img = nuevo mapa de bits (0, 0);", no funciona: no puede crear una imagen de 0 tamaño. Cambiarlo a "nuevo mapa de bits (1, 1)", funciona. – neminem
Si agrega 'drawing.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;' antes de la línea 'drawing.DrawString (text, font, textBrush, 0, 0);', obtendrá un texto suavizado anti-alias . – LoneBunny
uso imagemagick para la representación de texto en imágenes (en el servidor)
Ya que estás en C# También puede utilizar las clases de .NET para mapa de bits y la fuente de manipulación directa (con las clases como: System.Drawing.Bitmap
y System.Drawing.Graphics
)
Acabo de traducir este método mencionado en este answer a un método VB.NET. Tal vez esto ayude a alguien.
Public Function DrawText(ByVal text As String, ByRef font As Font, ByRef textColor As Color, ByRef backColor As Color) As Image
' first, create a dummy bitmap just to get a graphics object
Dim img As Image = New Bitmap(1, 1)
Dim drawing As Graphics = Graphics.FromImage(img)
' measure the string to see how big the image needs to be
Dim textSize As SizeF = drawing.MeasureString(Text, Font)
' free up the dummy image and old graphics object
img.Dispose()
drawing.Dispose()
' create a new image of the right size
img = New Bitmap(CType(textSize.Width, Integer), CType(textSize.Height, Integer))
drawing = Graphics.FromImage(img)
' paint the background
drawing.Clear(BackColor)
' create a brush for the text
Dim textBrush As Brush = New SolidBrush(textColor)
drawing.DrawString(text, font, textBrush, 0, 0)
drawing.Save()
textBrush.Dispose()
drawing.Dispose()
Return img
End Function
Editar: error tipográfico fijo.
Gracias Freddy, me has ahorrado mucha energía. – BedfordNYGuy
F#
versión:
open System.Drawing
let drawText text font textColor backColor =
let size =
use dummyImg = new Bitmap(1, 1)
use drawing = Graphics.FromImage(dummyImg)
drawing.MeasureString(text, font)
let img = new Bitmap((int size.Width), (int size.Height))
use drawing = Graphics.FromImage(img)
use textBrush = new SolidBrush(textColor)
do
drawing.Clear(backColor)
drawing.DrawString(text, font, textBrush, PointF())
drawing.Save() |> ignore
img
Gracias Kazar. Una ligera mejora de la respuesta anterior a utilizar para la USO disponer de los objetos de imágenes/gráficos después de su uso y la introducción del parámetro min tamaño
private Image DrawTextImage(String currencyCode, Font font, Color textColor, Color backColor) {
return DrawTextImage(currencyCode, font, textColor, backColor, Size.Empty);
}
private Image DrawTextImage(String currencyCode, Font font, Color textColor, Color backColor, Size minSize) {
//first, create a dummy bitmap just to get a graphics object
SizeF textSize;
using (Image img = new Bitmap(1, 1)) {
using (Graphics drawing = Graphics.FromImage(img)) {
//measure the string to see how big the image needs to be
textSize = drawing.MeasureString(currencyCode, font);
if (!minSize.IsEmpty) {
textSize.Width = textSize.Width > minSize.Width ? textSize.Width : minSize.Width;
textSize.Height = textSize.Height > minSize.Height ? textSize.Height : minSize.Height;
}
}
}
//create a new image of the right size
Image retImg = new Bitmap((int)textSize.Width, (int)textSize.Height);
using (var drawing = Graphics.FromImage(retImg)) {
//paint the background
drawing.Clear(backColor);
//create a brush for the text
using (Brush textBrush = new SolidBrush(textColor)) {
drawing.DrawString(currencyCode, font, textBrush, 0, 0);
drawing.Save();
}
}
return retImg;
}
- 1. Rendering una imagen en tiempo de ejecución en WPF
- 2. Agregar imagen en tiempo de ejecución
- 3. Generar en la cadena vuelo de [az]
- 4. Cargar un byte [] en una imagen en tiempo de ejecución
- 5. Generar, compilar y usar código Java en tiempo de ejecución?
- 6. Cómo cambiar el color de una imagen en el vuelo estacionario
- 7. ¿Cómo configuro el texto de un cuadro de texto en negrita en tiempo de ejecución?
- 8. ¿Puedo crear una clase Objective-C en tiempo de ejecución desde un archivo de texto?
- 9. Generar una imagen con texto personalizado en Android
- 10. ¿Cómo puedo cambiar el color de una imagen SVG en el vuelo estacionario?
- 11. recursos de imagen de wpf y cambio de imagen en wpf control en tiempo de ejecución
- 12. jQuery ¿Plugin para deslizar el texto en el vuelo estacionario?
- 13. Cómo cambiar el fondo de colores en enlaces de texto en vuelo estacionario, pero no imagen Conexiones
- 14. Android cómo crear una miniatura en tiempo de ejecución
- 15. ¿Cómo generar una instancia de un tipo desconocido en tiempo de ejecución?
- 16. ¿Cómo cargo una textura en XNA en tiempo de ejecución?
- 17. Agregar imagen al informe de Crystal En tiempo de ejecución
- 18. Cómo quitar fondo de la imagen en tiempo de ejecución en el iPhone SDK
- 19. Cómo generar sombra debajo de las palabras en una imagen
- 20. Clojure: Cómo crear una función en tiempo de ejecución
- 21. Android - ¿Cómo descargar una imagen y usarla en tiempo de ejecución?
- 22. Problemas de calidad al cambiar el tamaño de una imagen en tiempo de ejecución
- 23. ¿Cómo mostrar/ocultar una columna en tiempo de ejecución?
- 24. Crear plantillas T4 en tiempo de ejecución (tiempo de compilación)?
- 25. CSS/jQuery texto lateral de desplazamiento lateral en vuelo estacionario
- 26. Adición de texto en una nueva línea en WPF RichTextBox en tiempo de ejecución
- 27. Agregue una imagen png a una lista de imágenes en tiempo de ejecución usando Delphi XE
- 28. cómo poner texto en el medio de una imagen
- 29. ¿Cómo puedo generar recursos XML en tiempo de ejecución en Android?
- 30. Cómo cambiar sql_mode en el tiempo de ejecución
¿Quieres decir una imagen como se obtendría a partir de una captura de pantalla? Ciertamente, * algunos * formatos/extensiones serían mejores que otros. – pavium
¿A qué tipo de entrada de texto se refiere? –
No, no es captura de pantalla, tenemos cuadro de texto de entrada y estamos usando C# – Ravia