leer imagenes en access desde c#

24/01/2006 - 00:47 por Javier | Informe spam
Tengo un problema, desde mi aplicacion deberia de poder cargar las imagenes
que hay en una base de datos en access, estas imagenes las han insertado
copiando y pegando directamente en access, en los componentes del formulario
de access que tenian, pero ahora queremos hacer una aplicacion y tenemos que
usar las mismas imagenes, pero he probado varios metodos para cargar esas
imagenes leyendolas como un array de bytes, luego pasando a MemoryStream, y
de alli un Image.FromStream... pero nada, me dice "Parametro no valido", y
he probado varios metodos que he encontrado por internet, pero no se que es
lo que estoy haciendo mal, o donde puede estar el problema, si alguien
pudiese ayudarme le estaria muy agradecido!!!

Gracias.
 

Leer las respuestas

#1 Marino Posadas
24/01/2006 - 02:57 | Informe spam
Hola Javier

Es que si las importas de Access añaden 78 bytes debido al soporte de OLE,
que deberás de eliminar:

Por ejemplo si tienes la imagen en un campo de un DataSet, su formato será
base64Binary, y por lo que puedes recuperarlo desde el evento Format de un
Binding que tengas a un PictureBox, por ejemplo, con el siguiente código:

// Formatea el valor enlazado para encajarlo en la propiedad

private void PictureBox_Format(object sender, ConvertEventArgs e)

{

//Convierte los bits de imagen en un objeto Bitmap que se puede

//asignar a un PictureBox : e.Value es el valor original

byte[] img= (byte[]) (e.Value);

//Conversión

MemoryStream ms= new MemoryStream();

int offset = 78;

ms.Write(img, offset, img.Length - offset);

Bitmap bmp = new Bitmap(ms);

ms.Close();


//Escribe el nuevo valor convertido

e.Value = bmp;

}

Espero que te sirva.


Saludos cordiales
Marino Posadas
MVP Visual C#

www.ElAveFenix.net


"Javier" escribió en el mensaje
news:%
Tengo un problema, desde mi aplicacion deberia de poder cargar las
imagenes que hay en una base de datos en access, estas imagenes las han
insertado copiando y pegando directamente en access, en los componentes
del formulario de access que tenian, pero ahora queremos hacer una
aplicacion y tenemos que usar las mismas imagenes, pero he probado varios
metodos para cargar esas imagenes leyendolas como un array de bytes, luego
pasando a MemoryStream, y de alli un Image.FromStream... pero nada, me
dice "Parametro no valido", y he probado varios metodos que he encontrado
por internet, pero no se que es lo que estoy haciendo mal, o donde puede
estar el problema, si alguien pudiese ayudarme le estaria muy
agradecido!!!

Gracias.


Preguntas similares