Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-12-2013
vankul vankul is offline
Registrado
NULL
 
Registrado: dic 2013
Posts: 4
Poder: 0
vankul Va por buen camino
Cargar imágenes desde archivo en ImageList

Tengo el siguiente código que funciona bien con archivos .bmp pero no con los .jpg, me gustaría que alguien me ayudara:
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.");
        }
    }
}
Responder Con Cita
  #2  
Antiguo 04-12-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.042
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración
Responder Con Cita
  #3  
Antiguo 04-12-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola vankul.

De este modo me funciona correctamente:
Código:
#include <jpeg.hpp>

void __fastcall TForm1::FormCreate(TObject *Sender)
{
 FileListBox1->Directory = "C:\\Prueba\\Imagenes";
 FileListBox1->Mask = "*.BMP;*.JPG;*.JPEG";
 ListView1->SmallImages = ImageList1;
 ListView1->ViewStyle  = vsSmallIcon;
}

void __fastcall TForm1::Button1Click(TObject *Sender)
{
  for (int i = 0; i < FileListBox1->Items->Count; i++) {
    TJPEGImage *JPG = new TJPEGImage();
    Graphics::TBitmap *BM = new Graphics::TBitmap;
    TRect R;
    AnsiString filename = FileListBox1->Directory + "\\" +
                          FileListBox1->Items->Strings[i];
    AnsiString name     = ExtractFileName(filename);
    AnsiString ext      = ExtractFileExt(filename).UpperCase();
    R.Left     = 0;
    R.Top      = 0;
    R.Right    = ImageList1->Width;
    R.Bottom   = ImageList1->Height;
    BM->Width  = ImageList1->Width;
    BM->Height = ImageList1->Height;
    try {
      if (ext == ".JPG" || ext == ".JPEG") {
        JPG->LoadFromFile(filename);
        BM->Assign(JPG);
        BM->Canvas->StretchDraw(R, BM);
        ImageList1->Add(BM, NULL);
      }
      if (ext == ".BMP") {
        BM->LoadFromFile(filename);
        ImageList1->Add(BM, NULL);
      }
      ListView1->Items->Add();
      ListView1->Items->Item[ListView1->Items->Count-1]->Caption = name;
      ListView1->Items->Item[ListView1->Items->Count-1]->ImageIndex = i;
    }
    catch(...) {
      MessageBox(Handle,
                 ((AnsiString)("Error leyendo imágen: "+filename)).c_str(),
                 "ERROR",
                 MB_ICONERROR);
    }
    delete JPG;
    delete BM;
  }
}
Saludos

Edito: vankul, cambié el título original "Una ayudita" por uno mas significativo para facilitar las búsquedas.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 04-12-2013 a las 17:55:51.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Cargar Imagenes desde un zip a un timage. javier9090 Varios 3 19-03-2012 18:20:55
Cargar un Imagelist desde una dll Fita Gráficos 0 30-04-2007 02:13:07
Cargar imágenes desde JAVA en MySQL david.rguez JAVA 1 14-02-2007 13:36:19
Cargar imágenes desde un imagelist johncook Varios 1 06-12-2004 13:44:15
cargar imagenes desde un fichero docarrillo Varios 2 12-07-2003 17:02:46


La franja horaria es GMT +2. Ahora son las 22:38:10.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi