• Sábado 14 de Diciembre de 2024, 13:42

Autor Tema:  Imagenes En C++ Builder  (Leído 9692 veces)

anadelaisla

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Imagenes En C++ Builder
« en: Miércoles 14 de Noviembre de 2007, 19:45 »
0
Hola a todos, mirad estoy haciendo un programa para editar imagenes en c++ builder, en un principio .jpg y no consigo hacer q se me abra una imagen existente... mira os pongo el cogigo que utilizo para ello:

void __fastcall TForm1::BotonAbrir(TObject *Sender)
{
   TImage *Imagen;
   TForm2 *Nuevo_form;


  if(AbrirPicture->Execute())
   try {
                     Nuevo_form=new TForm2(this);
       Imagen= new TImage(Nuevo_form);

       Imagen->Picture->LoadFromFile(AbrirPicture->FileName);
   } catch(...) {
     ShowMessage("No es posible cargar el archivo indicado");
   }

      Caption = "Manipulación e interpretacion gráfica - (" + AbrirPicture->FileName + ")";

}

el problema es q siempre me dice: " no es posible cargar el archivo " y no se pq, si me podeis ayudar...
Gracias, saludos.

Enko

  • Miembro de PLATA
  • *****
  • Mensajes: 1562
  • Nacionalidad: 00
    • Ver Perfil
Re: Imagenes En C++ Builder
« Respuesta #1 en: Miércoles 14 de Noviembre de 2007, 20:54 »
0
El componente TImage solo sirve para Cargar Bitmaps e Iconos.
Si necesitas cargar JPG, creo que la clase se llamaba JPGLoader o JpgImage, sino busca  algun componente en la RED. (jamas cargue jpgs)

giropau

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
Re: Imagenes En C++ Builder
« Respuesta #2 en: Sábado 17 de Noviembre de 2007, 13:48 »
0
Yo he cargado imagenes en jpg en un TImage. Deberias hacer 2 cosas.
1º tienes que cargar una imagen jpg en el Timage desde el editor, una en blanco por ejemplo
2º en el .h haces #include <jpeg.hpp>
Con esto ya puedes hacer el loadfromfile de la imagen en jpg

anadelaisla

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Re: Imagenes En C++ Builder
« Respuesta #3 en: Lunes 19 de Noviembre de 2007, 18:25 »
0
Gracias, a los dos, al incluir #include <jpeg.hpp> en el .h, ya no me dice que no es posible cargar el archivo y se me abre pero no la foto, sino un formulario en blanco, será que tengo que poner algun show() por ahí... ??
gracias ,saludos.

anadelaisla

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Re: Imagenes En C++ Builder
« Respuesta #4 en: Lunes 19 de Noviembre de 2007, 18:28 »
0
Lo he probado poniendo NuevoForm->Show(), pero sigue abriendose en blanco...

loki160685

  • Miembro activo
  • **
  • Mensajes: 58
    • Ver Perfil
Re: Imagenes En C++ Builder
« Respuesta #5 en: Jueves 22 de Noviembre de 2007, 00:07 »
0
intenta con incluir directamente el TImage en tu Form

anadelaisla

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Re: Imagenes En C++ Builder
« Respuesta #6 en: Jueves 22 de Noviembre de 2007, 18:41 »
0
Ay!!! que vaa, tampoco va poniendolo en el formulario!!! que pesadilla!!!
Si a alguien se le ocurren más opciones que me lo diga, por fa...
Gracias.

Ithilien

  • Miembro MUY activo
  • ***
  • Mensajes: 116
    • Ver Perfil
Re: Imagenes En C++ Builder
« Respuesta #7 en: Lunes 26 de Noviembre de 2007, 22:56 »
0
Has probado a hacer un ShowMessage del contenido de AbrirImagen->Filename? A lo mejor estas intentando cargar un path inválido. En cualquier caso, puedes probar a hacer lo siguiente: pese a que yo he cargado imagenes JPG en TImage ( de hecho, en modo diseño se puede cargar ), puedes coger y convertir a BMP el fichero JPG. Eso si, según el código que presento, si el fichero no es JPG, te levantará una excepción:

Código: Text
  1.  
  2.  
  3. //Se carga la imagen
  4. TJPEGImage *j = new TJPEGImage;
  5. j-&#62;LoadFromFile( OpenPictureDialogo-&#62;FileName );
  6. j-&#62;DIBNeeded();
  7.  
  8. //La asignas a un Bitmap
  9. Graphics::TBitmap *b = new Graphics::TBitmap();
  10. b-&#62;Assign(j);
  11.  
  12. //Y ese bitmap, lo asignas a la imagen
  13. Imagen-&#62;Picture-&#62;Assign(b);
  14.  
  15.  
  16.  

Creo que debería funcionar. Si no, puedes probar a depurar, porque me parece muy raro que no te cargue la imagen. Lo que podrías hacer es quitar el try catch para darte cuenta de qué es lo que exactamente pasa, o bien capturar la excepción y mostrarla por pantalla.

Saludos!

gonza_fs

  • Nuevo Miembro
  • *
  • Mensajes: 24
    • Ver Perfil
Re: Imagenes En C++ Builder
« Respuesta #8 en: Miércoles 28 de Noviembre de 2007, 19:12 »
0
Hola, yo lo logre de esta manera:

TJPGImage* i=new TJPGImage();
i->LoadFromFile("nombre de la imagen.jpg");
TImage->Picture=(TJPGImage*)i;

Y no tenes que hacer ningun show() ni nada parecido, solo lo carga y lo abre automaticamente. Espero te sirva, saludos

gonza_fs

  • Nuevo Miembro
  • *
  • Mensajes: 24
    • Ver Perfil
Re: Imagenes En C++ Builder
« Respuesta #9 en: Miércoles 28 de Noviembre de 2007, 19:16 »
0
Ah, ya que estoy, te pregunto a vos o a los que te hayan contestado, si es que alguno sabe, como crear y pintar un buffer de imagenes?; porque lo he preguntado antes y no me contesto nadie. Ja ja ja, medio tramposo preguntar asi pero es que probe bastante y no me sale.