Como grabo un PictureBox

21/05/2005 - 14:59 por pepo | Informe spam
HOla...

En mi aplicación, cada vez que entra al método OnPaint hace un acceso a
la base de datos para graficarlo en un PictureBox, el caso es que la
base de datos no cambia tan rápido y sería mejor solo graficar una vez,
pero guardar el PictureBox de tal manera que en OnPain solo recupero lo
que he guardado.

Si desde allí podría guardarla como imagen sería mejor aún.

gracias

Preguntas similare

Leer las respuestas

#1 Miguel Angel Campos
23/05/2005 - 12:02 | Informe spam
En el control PictureBox utilizas la propiedad Image, cargandola con la
imagen de la base de datos, pues create una variable bool que la estableces
a true cuando cargas la imagen, y posteriormente si ya está a true no la
vuelves a cargar:

static bool yaCargada = false;


if (yaCargada == false)
{
//Cargas la imagen de la base de datos
yaCargada = true;
}

Puedes implementar otras lógicas, como cargar la imagen cada cierto tiempo,
etc.

Un Saludo,

Miguel Angel Campos
MCAD.NET

"pepo" escribió en el mensaje
news:
HOla...

En mi aplicación, cada vez que entra al método OnPaint hace un acceso a la
base de datos para graficarlo en un PictureBox, el caso es que la base de
datos no cambia tan rápido y sería mejor solo graficar una vez, pero
guardar el PictureBox de tal manera que en OnPain solo recupero lo que he
guardado.

Si desde allí podría guardarla como imagen sería mejor aún.

gracias
Respuesta Responder a este mensaje
#2 pepo
24/05/2005 - 10:02 | Informe spam
HOla...
La imagen no está en la base de datos, yo la creo (GDI+) usando los
datos como estadísticas; es decir creo un montón de líneas sobre un
PictureBox y lo que me interesa es que todo eso lo capture en una imagen
para que no tenga que repetir el acceso a la base de datos cada vez que
se ejecuta el método OnPaint.

Gracias


Miguel Angel Campos escribió:
En el control PictureBox utilizas la propiedad Image, cargandola con la
imagen de la base de datos, pues create una variable bool que la estableces
a true cuando cargas la imagen, y posteriormente si ya está a true no la
vuelves a cargar:

static bool yaCargada = false;


if (yaCargada == false)
{
//Cargas la imagen de la base de datos
yaCargada = true;
}

Puedes implementar otras lógicas, como cargar la imagen cada cierto tiempo,
etc.

Respuesta Responder a este mensaje
#3 Miguel Angel Campos
25/05/2005 - 16:42 | Informe spam
Entendido.
Lo que tienes que hacer es utilizar la técnica de doble buffer, esta técnica
se utiliza para evitar parpadeos en la pantalla a la hora hora hacer un uso
intensivo de GDI en las aplicaciones. Consiste en dibujar sobre una imagen
en memoria y despues transferir esa imagen en memoria a un elemento en
pantalla.

Ejemplo (c#):
Bitmap backBuffer = new Bitmap(width, height);
Graphics drawingArea = Graphics.FromImage(backBuffer);

sobre el objeto drawingArea ejecutas todas las funciones necesarias de
dibujo, y con esto tendrás en el objeto backBuffer un Bitmap con el gráfico
generado. Este bitmap lo puedes asignar a la propiedad Image del PictureBox,
o incluso lo puedes salvar a disco para cachearlo en sucesivas sesiones del
usuarios.

Un Saludo,

Miguel Angel Campos
MCAD.NET

"pepo" escribió en el mensaje
news:
HOla...
La imagen no está en la base de datos, yo la creo (GDI+) usando los datos
como estadísticas; es decir creo un montón de líneas sobre un PictureBox y
lo que me interesa es que todo eso lo capture en una imagen para que no
tenga que repetir el acceso a la base de datos cada vez que se ejecuta el
método OnPaint.

Gracias


Miguel Angel Campos escribió:
En el control PictureBox utilizas la propiedad Image, cargandola con la
imagen de la base de datos, pues create una variable bool que la
estableces a true cuando cargas la imagen, y posteriormente si ya está a
true no la vuelves a cargar:

static bool yaCargada = false;


if (yaCargada == false)
{
//Cargas la imagen de la base de datos
yaCargada = true;
}

Puedes implementar otras lógicas, como cargar la imagen cada cierto
tiempo, etc.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida