Utilizo este método para guardar una imagen una base datos access. me guarda perfectamente.
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.
If Clipboard.GetDataObject.GetDataPresent("Bitmap") Then
PictureBox1.Image = CType(Clipboard.GetDataObject.GetData("Bitmap"), Bitmap)
End If
y no se como decirle aca en que ruta esta el archivo por que no esta en el disco.
Dim fsreader As New FileStream("el-problema-esta-aca-que-poner", FileMode.Open, FileAccess.Read)
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).
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.
Gracias, Seba funciono de lujo
Saludos...