• Jueves 14 de Noviembre de 2024, 04:18

Autor Tema:  Una ayudita  (Leído 3158 veces)

vankul

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Una ayudita
« en: Martes 3 de Diciembre de 2013, 20:35 »
0
Tengo el siguiente código que me funciona OK con imágenes en .bmp pero no con las .jpg y quisiera una solución; muchas gracias.
Código: [Seleccionar]
void __fastcall TForm1::Button1Click(TObject *Sender)
{
String dir = "C:";
if (SelectDirectory("Elige carpeta:","",dir)) {
FileListBox1->Directory = dir;
FileListBox1->ItemIndex = 0;
for (int i = 0; i < FileListBox1->Count; i++) {
lis->Add(FileListBox1->FileName);
FileListBox1->ItemIndex++;
}
if (lis->Count>0) {
Graphics::TBitmap* resBmp;
TJPEGImage *ImagenJpg = new TJPEGImage();
TListItem *Item;
String extension;
for (int i = 0; i < lis->Count; i++) {
extension = ExtractFileExt(lis->Strings[i]);
if ((extension.UpperCase()==".JPG")||(extension.UpperCase()==".JPEG")){
ImagenJpg->LoadFromFile(lis->Strings[i]);
resBmp->Height = ImageList1->Height;
resBmp->Width = ImageList1->Width;
ImageList1->Masked = false;
ImagenJpg->DIBNeeded();
resBmp->Assign(ImagenJpg);
ImageList1->Add(resBmp,NULL);
Item = ListView1->Items->Add();
Item->Caption = ExtractFileName(lis->Strings[i]);
Item->ImageIndex = i;

}
else {
if (extension.UpperCase()==".BMP") {
resBmp = new Graphics::TBitmap();
resBmp->Height = ImageList1->Height;
resBmp->Width = ImageList1->Width;
ImageList1->Masked = false;
resBmp->LoadFromFile(lis->Strings[i]);
ImageList1->Add(resBmp,NULL);
Item = ListView1->Items->Add();
Item->Caption = ExtractFileName(lis->Strings[i]);
Item->ImageIndex = i;
}
}
}
}
else {
ShowMessage("No hay archivos válidos en el directorio.");
}
}
}

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re:Una ayudita
« Respuesta #1 en: Miércoles 4 de Diciembre de 2013, 02:33 »
0
Cometes el clasico error de muchos que comienzan a trabajar con imagenes.

El que un archivo sea de imagen, no quiere decir que podras cargarlo automaticamente, cada diferente archivo de imagenes (jpg, png tiff, gif, etc) tienen su propio formato, el unico que se puede leer sin ninguna libreria adicional es el BMP (mapa de bits) para poder leer el resto de formatos necesitas una libreria de manejo de imagenes.

Prueba a utilizar FreeImage http://freeimage.sourceforge.net/ o DevIL http://openil.sourceforge.net/

Saludos :)

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

vankul

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re:Una ayudita
« Respuesta #2 en: Sábado 7 de Diciembre de 2013, 21:36 »
0
Muchas gracias ProfesorX, provaré lo que me sugieres  :suerte: