• Viernes 8 de Noviembre de 2024, 19:52

Autor Tema:  Convertir Jpg A Bmp  (Leído 1445 veces)

Ithilien

  • Miembro MUY activo
  • ***
  • Mensajes: 116
    • Ver Perfil
Convertir Jpg A Bmp
« en: Miércoles 7 de Marzo de 2007, 11:10 »
0
Hola,

    alguien puede decirme como se realiza ese procedimiento de conversión?

Gracias

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Convertir Jpg A Bmp
« Respuesta #1 en: Miércoles 7 de Marzo de 2007, 16:31 »
0
existen librerias especializadas para tal fin.

Un truco para salir rapido del problema es cargar el jpeg  en un objeto TBitmap y ya una vez cargado usar el metodo SaveToFile del objeto TBitmap e indicarle que haga save como archivo bmp.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

Ithilien

  • Miembro MUY activo
  • ***
  • Mensajes: 116
    • Ver Perfil
Re: Convertir Jpg A Bmp
« Respuesta #2 en: Sábado 10 de Marzo de 2007, 10:47 »
0
Hola JuanK,

    muchas gracias por contestar. Efectivamente esa opción sería la correcta. De todas formas me interesaba evitar el usar ficheros, porque lo que quería era guardar en la base de datos la imagen bmp, por lo que al final he utilizado la opción Stream. Eso, junto con código de una página japonesa / china / koreana, me ha servido para resolver el problema.

    Por si alguien esta interesado también en la conversión de imágenes JPG a BMP, pongo el código para que no tengan que buscar más, que siempre se agradece:

Código: Text
  1.  
  2.                 //Se carga la imagen
  3.                 TJPEGImage *j = new TJPEGImage;
  4.                 j->LoadFromFile( OpenPictureDialogo->FileName );
  5.                 j->DIBNeeded();
  6.  
  7.                 //Se redimensiona
  8.                 Graphics::TBitmap * bm = new Graphics::TBitmap();
  9.                 bm->Width = DBImagen->Width;
  10.                 bm->Height = DBImagen->Height;
  11.                 bm->Canvas->StretchDraw(bm->Canvas->ClipRect,j);
  12.                 j->Assign(bm);
  13.  
  14.                 //Se asigna al campo fotografía de la tabla de la BD
  15.                 Graphics::TBitmap *b = new Graphics::TBitmap();
  16.                 TMemoryStream *s = new TMemoryStream;
  17.                 b->Assign(j);
  18.                 b->SaveToStream(s);
  19.                 delete b;
  20.                 delete j;
  21.                 MyTablaTrabajador->Edit();
  22.                 MyTablaTrabajadorfotografia->LoadFromStream(s);
  23.                 MyTablaTrabajador->Post();
  24.  
  25.  

Aquí supongo que quiero mostrar la nueva imagen que cargo de un OpenPictureDialog en un DBimage que tengo en el formulario. Se consigue una redimensión de la imagen para que se vea correctamente, ajustándola a las dimensiones del DBImage. Por último, MyTablaTrabajador es un objeto TMyTable muy similar aTTable, cuyo TableName es una tabla que tengo en mi base de datos que se llama trabajador, y que tiene un campo que se llama fotografía.

Saludos!!!