Imagenes en formularios windows

17/11/2005 - 11:44 por Vyacheslav Popov | Informe spam
Hola a todos

Estoy intentando enlazar el cuadro de imagen con un campo de la base de
datos. ¿Que hago mal?

Este es el codigo que tengo para enlazarlo

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

Binding bindFoto = new Binding("Image", MidataSet, "cliente.foto");
bindFoto.Format += new ConvertEventHandler(bindFoto_Format);
bindFoto.Parse += new ConvertEventHandler(bindFoto_Parse);
this.foto.DataBindings.Add(bindFoto);

******************************************************
private void bindFoto_Format(object sender, ConvertEventArgs e)
{
try
{
Byte[] img = (Byte[]) e.Value;

MemoryStream ms = new MemoryStream();

ms.Write(img, 0, img.Length);
Bitmap bmp = new Bitmap(ms);
ms.Close();

e.Value = bmp;
}
catch(Exception)
{
}
}

******************************************************
private void bindFoto_Parse(object sender, ConvertEventArgs e)
{
try
{
MemoryStream ms = new MemoryStream();
this.foto.Image.Save(ms, ImageFormat.Jpeg);


byte[] buffer = new byte[ms.Length];
stream.Position = 0;
stream.Read(buffer, 0, ms.Length);

e.Value = buffer;
}
catch(Exception)
{
}
}

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

Me da el siguiente error: No se puede dar formato del tipo deseado al valor.

Saludos
Popov
 

Leer las respuestas

#1 Marino Posadas
24/11/2005 - 20:50 | Informe spam
Hola

¿Por casualidad esas imágenes no vendrán de Access o de otra aplicación tipo
Office? Por que si es así, tienes que evitar escribir lo 78 primeros bytes
de cabecera que corresponden al prefijo OLE que estos programas incrustan a
los gráficos. Bastaría con que pusieses lo siguiente en el evento Format:

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

Espero que te sirva.


Saludos cordiales
Marino Posadas
MVP Visual C#

www.ElAveFenix.net

"Vyacheslav Popov" escribió en el mensaje
news:
Hola a todos

Estoy intentando enlazar el cuadro de imagen con un campo de la base de
datos. ¿Que hago mal?

Este es el codigo que tengo para enlazarlo

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

Binding bindFoto = new Binding("Image", MidataSet, "cliente.foto");
bindFoto.Format += new ConvertEventHandler(bindFoto_Format);
bindFoto.Parse += new ConvertEventHandler(bindFoto_Parse);
this.foto.DataBindings.Add(bindFoto);

******************************************************
private void bindFoto_Format(object sender, ConvertEventArgs e)
{
try
{
Byte[] img = (Byte[]) e.Value;

MemoryStream ms = new MemoryStream();

ms.Write(img, 0, img.Length);
Bitmap bmp = new Bitmap(ms);
ms.Close();

e.Value = bmp;
}
catch(Exception)
{
}
}

******************************************************
private void bindFoto_Parse(object sender, ConvertEventArgs e)
{
try
{
MemoryStream ms = new MemoryStream();
this.foto.Image.Save(ms, ImageFormat.Jpeg);


byte[] buffer = new byte[ms.Length];
stream.Position = 0;
stream.Read(buffer, 0, ms.Length);

e.Value = buffer;
}
catch(Exception)
{
}
}

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

Me da el siguiente error: No se puede dar formato del tipo deseado al
valor.

Saludos
Popov

Preguntas similares