Leer imagenes de una bd y guardarla en disco

20/02/2007 - 21:11 por Lazarte Federico | Informe spam
Estimados.
Tengo una base de datos con gran cantidad de imagenes.
Lo que necesito es leer esas imagenes y guardarlas en disco como un
archivo de imagen.
Alguien tiene un ejemplo de como hacerlo?
Muchas gracias.
 

Leer las respuestas

#1 Luis Miguel Blanco
20/02/2007 - 23:50 | Informe spam
Hola Federico

Una vez que mediante una consulta contra la base de datos tengas los
registros de la tabla que contiene las imágenes en un DataSet o un
DataReader, para cada registro asigna el contenido del campo que contiene la
imagen a un array de tipo byte. A continuación, creas un stream en memoria
pasando como parámetro al constructor el array de bytes. Seguidamente creas
un objeto Bitmap utilizando el stream, para finalmente guardar el bitmap en
disco utilizando su método Save. Te indico mediante un ejemplo los pasos a
dar. En este caso sólo se recupera una imagen, pero con algunos retoques creo
que lo podrás adaptar a tus necesidades.

//--
using System.Data.SqlClient;
using System.IO;
//

string sSQL = "SELECT Nombre, Foto FROM Fotos WHERE IDFoto = 150";
SqlConnection cnConexion = new SqlConnection("data
source=localhost;initialcatalog=ColeccionFotos;uid=sa;pwd='';");
SqlCommand cmdComando = new SqlCommand();
cmdComando.Connection = cnConexion;
cmdComando.CommandType = CommandType.Text;
cmdComando.CommandText = sSQL;
cnConexion.Open();

SqlDataReader drFotos = cmdComando.ExecuteReader(CommandBehavior.SingleRow);

byte[] aBytImagen = null;
if (drFotos.Read())
{
// obtener la foto en formato binario
aBytImagen = (byte[])drFotos["Foto"];
}

drFotos.Close();
cnConexion.Close();

MemoryStream oMemoryStream = new MemoryStream(aBytImagen);
Bitmap bmpImagen = new Bitmap(oMemoryStream);
bmpImagen.Save(@"c:\fotos\archivo1.jpg");
//--

Espero que te sirva de ayuda.

Un saludo
Luis Miguel Blanco
http://www.dotnetmania.com


"Lazarte Federico" wrote:

Estimados.
Tengo una base de datos con gran cantidad de imagenes.
Lo que necesito es leer esas imagenes y guardarlas en disco como un
archivo de imagen.
Alguien tiene un ejemplo de como hacerlo?
Muchas gracias.


Preguntas similares