Programación General > C++ Builder

 Una ayudita

(1/1)

vankul:
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: ---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.");
}
}
}
--- Fin del código ---

ProfesorX:
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 :)

vankul:
Muchas gracias ProfesorX, provaré lo que me sugieres  :suerte:

Navegación

[0] Índice de Mensajes

Ir a la versión completa