Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Lesen einer JPEG200 DAtei

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
25.02.2007, 19:47 Uhr
~shed
Gast


Hallo!

Habe versucht ein jp2 file einzulesen. Funktioniert aber leider nicht. Mit fseek und ftell woltle ich die filegröße herausbekommen. Liefert mir aber immer 0.
Weiß vielleicht jemand was ich falsch mache? Danke


C++:
FILE* fp2 = fopen("city.jp2" , "rb");
if(fp2 != NULL)
{
    char* buffer;
    int i =100;
    size_t result;

      // obtain file size:
    fseek (fp2 , 0 , SEEK_END);
    int lSize = ftell(fp2);
    fseek (fp2 , 0 , SEEK_SET);
            

    std::cout << lSize << "\n";
        // allocate memory to contain the whole file:
    buffer = (char*) malloc (sizeof(char)*lSize);
    if (buffer == NULL) {fputs ("Memory error",stderr); exit (2);}
        // copy the file into the buffer:
    result = fread (buffer,1,lSize,fp2);
    std::cout << result << "\n";
    if (result != lSize) {fputs ("Reading error",stderr); exit (3);}
          /* the whole file is now loaded in the memory buffer. */
    std::cout << buffer << " Länge:" << strlen(buffer);
    std::cout << "\n";
          // terminate
    fclose (fp2);
    free (buffer);            
}



mfg,
shed
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
25.02.2007, 20:44 Uhr
xXx
Devil


nimm mal einfach std::fstream


C++:
std::ifstream file;
file.open("city.jp2", std::ios_base::binary | std::ios_base::in);

if (file.good() == false || file.eof() == true || file.is_open() == false)
    return false;

file.seekg(0, std::ios_base::beg);
std::ifstream::pos_type begin_pos = file.tellg();
file.seekg(0, std::ios_base::end);
int len = static_cast<int>(file.tellg() - begin_pos);
file.seekg(0, std::ios_base::beg);

std::cout << len << std::endl;

char* buffer = new char[len];
file.read(buffer, len);

if (file.good() == false)
    return false;


// Hier kannst de alles im Buffer nutzen ...
file.close();

delete [] buffer;
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
26.02.2007, 13:16 Uhr
~shed
Gast


Hi,

ich bekomme leider immer noch die länge 0 zurück :-(
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: