Autor Tema: Guardar imagen en una base datos.  (Leído 5917 veces)

0 Usuarios y 1 Visitante están viendo este tema.

E N T E R

  • Petabyte
  • ******
  • Mensajes: 1062
  • Reputación: +57/-13
  • www.enterpy.com
    • Ver Perfil
    • www.enterpy.com
Guardar imagen en una base datos.
« en: Agosto 10, 2012, 12:03:26 pm »
Utilizo este método para guardar una imagen una base datos access. me guarda perfectamente.

Código: (VB) [Seleccionar]
        Dim fsreader As New FileStream("c:\carpeta\foto1.jpg", FileMode.Open, FileAccess.Read)
        Dim breader As New BinaryReader(fsreader)
        Dim imgbuffer(fsreader.Length) As Byte
        breader.Read(imgbuffer, 0, fsreader.Length)
        fsreader.Close()
        'closes the current stream and releases any resources

        strSQL = "INSERT INTO juegos (titulo,imagen) values (@titulo,@imagen)"
        strComando.CommandText = strSQL
        strComando.Connection = strConexion

        strComando.Parameters.AddWithValue("@titulo", "nuevo metodo")
        strComando.Parameters.AddWithValue("@imagen", imgbuffer)
        strComando.ExecuteNonQuery()
        strComando.Dispose()
        MsgBox("Saved")

Pero ahora surgió un problemita. tengo un PictureBox en donde le pego el contenido del Clipboard.

Código: (VB) [Seleccionar]
        If Clipboard.GetDataObject.GetDataPresent("Bitmap") Then
            PictureBox1.Image = CType(Clipboard.GetDataObject.GetData("Bitmap"), Bitmap)
        End If

y no se como decirle aca
Código: (VB) [Seleccionar]
Dim fsreader As New FileStream("el-problema-esta-aca-que-poner", FileMode.Open, FileAccess.Read) la dirección del archivo.
CIBER GOOGLE - CONCEPCIÓN PARAGUAY
www.enterpy.com
Primera regla de la programacion, para que vas a hacerlo complicado si lo puedes hacer sencillo

seba123neo

  • Moderador
  • Terabyte
  • *****
  • Mensajes: 763
  • Reputación: +88/-5
    • Ver Perfil
Re:Guardar imagen en una base datos.
« Respuesta #1 en: Agosto 10, 2012, 12:25:33 pm »
es que FileStream solo te convierte a Stream una imagen del disco, no lo deberias usar, ya que te limita a solo cargar imagenes del disco. deberias usar MemoryStream, que ese te covierte a Stream lo que haya en el Picturebox independientemente como hayas cargado la imagen.

entonces despues no tendrias que usar FileStream, directamente al cargar la imagen (ya sea desde el disco con la propiedad .Load del picturebox o desde el clipboard) la imagen que contenga se va a convertir en Stream (que despues se la pasas al BinaryReader).

Código: (vbnet) [Seleccionar]
Imports System.IO

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim i As New MemoryStream()
        PictureBox1.Image.Save(i, System.Drawing.Imaging.ImageFormat.Jpeg) ' aca guardas la imagen del picture a Stream

        Dim breader As New BinaryReader(i) ' aca sigue tu codigo...
    End Sub
End Class

saludos.


E N T E R

  • Petabyte
  • ******
  • Mensajes: 1062
  • Reputación: +57/-13
  • www.enterpy.com
    • Ver Perfil
    • www.enterpy.com
Re:Guardar imagen en una base datos.
« Respuesta #2 en: Agosto 10, 2012, 05:05:01 pm »
Gracias, Seba funciono de lujo

Saludos...
CIBER GOOGLE - CONCEPCIÓN PARAGUAY
www.enterpy.com
Primera regla de la programacion, para que vas a hacerlo complicado si lo puedes hacer sencillo