Añadiendo texto a una imagen dibujada con GDI+.
Estoy mostrando imágenes usando un temporizador y un PictureBox. En lugar de mostrar una imagen, luego quitarla y cargar otra, las imágenes parecen agregarse una encima de la otra.
A medida que se muestran las imágenes, me gustaría superponer texto en ellas.
Aquí está el código que estoy utilizando para crear imágenes y texto:
Dim fname As String = (En realidad es una matriz de imágenes(jpg) que se muestra con el temporizador)
Dim bm As New Bitmap(fname)
PicBox.Image = bm
findex -= 1 (índice de la matriz de imágenes)
Dim g As Graphics = PicBox.CreateGraphics
g.DrawImage(bm, 300, 10)
g.DrawString("Kishman Tukus", New Font("Arial", 24, FontStyle.Bold), Brushes.Green, 400, 100)
g.ResetTransform()
g.Dispose()
Necesito que las imágenes se muestren en el PictureBox una a la vez usando el temporizador y también necesito superponer texto en las imágenes.
¿Alguien puede ayudarme a evitar que las imágenes se agreguen al PictureBox en lugar de mostrarse una a la vez?
O incluso mejor, ¿no usar en absoluto un PictureBox y simplemente mostrar imágenes con superposición de texto?
En cualquier caso, necesito evitar la pérdida de memoria.
Gracias.
davy.ai
Para mostrar las imágenes una a la vez sin superponerse en el PictureBox, puedes borrar el PictureBox antes de cargar una nueva imagen. Reemplaza la línea
PicBox.Image = bm
porPicBox.Image = Nothing
para borrar el PictureBox antes de establecer la nueva imagen.En cuanto a superponer texto en las imágenes, puedes utilizar el mismo código que has proporcionado después de cargar la imagen en el PictureBox. Sin embargo, no es necesario crear un nuevo objeto Graphics cada vez. En su lugar, puedes utilizar el objeto Graphics del PictureBox. Aquí tienes un fragmento de código actualizado:
Para evitar las fugas de memoria, asegúrate de desechar los objetos Bitmap y Graphics después de haber terminado de utilizarlos, como se muestra en el código anterior. Además, si estás cargando muchas imágenes, puede que quieras considerar el uso de una técnica de carga de imágenes eficiente en memoria, como la carga perezosa o el almacenamiento en caché.