Programación General > Visual Basic 6.0 e inferiores

 Re: Como Guardar Graficos en Base de Datos

(1/2) > >>

anamercy:
Hola, necesito saber como puedo guardar y cargar  un grafico

dibujado en un picture box a una base de datos. En el picture

box hago dibujos de varias lineas, cuadros, puntos y circulos

con el método MouseUp del picture box, ademas contiene una

imagen jpg de fondo que es sobre la que se hacen todos los

graficos. La imagen se guarda y carga exitosamente en la base de

datos con los metodos AppendChunk y GetChunk pero no me guarda

todos los trazos hechos en la Base de Datos.....Como puedo hacer

esto?.Les agradecere mucho su ayuda.

Brroz:
Hola anamercy.

Por mucho que utilices métodos gráficos en un control PictureBox no vas a conseguir que esos cambios se reflejen en el archivo o datos desde los que has cargado una imagen. La solución pasaría por usar algún control de edición de imagen ,o por utilizar apis para crear un bitmap que pudieras guardar (me gustaría ver cómo se hace) o por guardar tú misma los cambios abriendo el archivo en binario (o los datos binarios del campo de la bd) y escribiendo la imagen modificada, claro que esta última opción no es nada sencilla dada la multitud de formatos de imágenes, compresiones, y otras zarandajas que te puedes encontrar y debes conocer para guardar la imagen de forma correcta.

En fin, si no usas wXp, una solución sencilla es usar el ocx ImageEdit (lo de wXp es porque en Xp este control no se incluye con el SO).

Suerte.

anamercy:
Hola, lei tu respuesta y te agradezco mucho por la informacion. Realmente suena demasiado complicado y me llevaria mucho tiempo investigarlo y probarlo, ya que no soy experta en visual basic. Ademas estoy con sistema operativo Xp y no funcionaria.....He optado por almacenar coordenadas de los graficos en la base de datos. Talvez podrias sugerirme alguna forma de hacer esto mas eficiente. Te lo agradecere mucho.

Brroz:
Hola de nuevo anamercy.

Creo que se me ha ocurrido una forma de guardar la imagen del picturebox con las modificaciones que hayas hecho, y es a través del objeto Clipboard.
Fíjate en el ejemplo que carga una imagen llamada pba.bmp en un picturebox, le dibuja un par de líneas y guarda la imagen con los cambios. Muy importante: la propiedad AutoRedraw del pictureBox tiene que ser True.

***************************

    Picture1.Picture = LoadPicture("c:Rutapba.bmp")
    Picture1.Line (0, 0)-(Picture1.Width, Picture1.Height)
    Picture1.Line (0, Picture1.Height)-(Picture1.Width, 0)
    Clipboard.Clear
    Clipboard.SetData Picture1.Image, vbCFDIB
    SavePicture Clipboard.GetData, "C:Rutapba.bmp"

***************************************
Espero que puedas adaptar esta idea para solucionar tu problema.
Suerte.

Brroz:
Hola de nuevo.

Poco a poco voy cayendo de la burra. Me acabo de dar cuenta de por qué no funcionaba la instrucción SavePicture. Prueba de esta forma y verás:

SavePicture Picture1.Image, "C:RutaArchivo.Bmp"

¡Estaba utilizando la propiedad 'Picture' del PictureBox en vez de utilizar la propiedad 'Image'! Si seré...

Suerte.

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa