Forum Quasi-bimber Strona Główna Quasi-bimber
Zastępcze forum informatyki 2005-2010 na IZ,PWr
 
 FAQFAQ   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy   GalerieGalerie   RejestracjaRejestracja 
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

potrzebna pomoc - zapis/odczyt

 
Napisz nowy temat   Odpowiedz do tematu    Forum Quasi-bimber Strona Główna -> 04 semestr
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
mmrozo




Dołączył: 20 Sty 2007
Posty: 5
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

PostWysłany: Nie 13:00, 25 Mar 2007    Temat postu: potrzebna pomoc - zapis/odczyt

blagam niech mi ktos pomoze, bo mi juz rece opadaja. mam blad przy wczytywaniu/zapisywaniu (tzn jezeli wczytam i zaraz bez niczego zapisze to wychodza be-ze-de-ury...

(acha - przy loadTiff( char* fn ) fn nie ma znaczenia bo i tak narazie mam na stale ustawione wczytanie obrazka baby1.tiff)

tablice red, green blue sa typu char**

oto fragment mojego kodu wczytanie/zapis:

Kod:

bool skalowanie::loadTiff(char* fn)
{
   system("tiff2rgb.exe baby1.tif");
   setRes();
   setTables();
   ifstream inRed("baby1.red");
   ifstream inGreen("baby1.gre");
   ifstream inBlue("baby1.blu");
   for( int i = 0 ; i < height ; i++ )
   {
      //inRed.get( red[i], width );
      //inGreen.get( green[i], width );
      inBlue.get( blue[i], width );
   }
   for( i = 0 ; i < height ; i++ )
   {
      for( int j = 0 ; j < width ; j++ )
      {
         cout<<blue[i][j];
      }
   }
   ofstream outBlue("baby1_.blu", ios::binary );
   for( i = 0 ; i < height ; i++ )
   {
      for( int j = 0 ; j < width ; j++ )
         outBlue.put(blue[i][j]);
                           /*
                           probowalem rowniez:
                           outBlue << blue[i];
                           outBlue.write(blue[i],width);
                           */
   }
   return true;
}
void skalowanie::setRes()
{
   char* buf = new char[15];
   ifstream res("baby1.res");
   res.getline( buf, 20 );   
   width = atoi( buf );
   height = atoi( buf+5 );
}
void skalowanie::setTables()
{
   red = new char*[height];
   green = new char*[height];
   blue = new char*[height];
   for( int i = 0 ; i < height ; i++ )
   {
      red[i] = new char[width];
      green[i] = new char[width];
      blue[i] = new char[width];
   }
}


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
mmrozo




Dołączył: 20 Sty 2007
Posty: 5
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

PostWysłany: Pon 2:16, 26 Mar 2007    Temat postu:

zamykajac swoj wlasny temat po calym dniu rozwazan i przeklinan wynalazlem ze funkcja czytajaca powinna czytac binarnie a nie tekstowo...

jakby kogos interesowalo funkcja czytajaca powinna wygladac mniej wiecej tak:
Kod:

bool skalowanie::loadTiff(char* fn)
{
   system("tiff2rgb.exe baby1.tif");
   setRes();
   setTables();
   FILE* fnRED = fopen("baby1.red", "rb");
   FILE* fnGREEN = fopen("baby1.gre", "rb");
   FILE* fnBLUE = fopen("baby1.blu", "rb");
   
   for( int i = 0 ; i < height ; i++ )
   {
      fread( blue[i], sizeof(char), width, fnBLUE );
      fread( red[i], sizeof(char), width, fnRED );
      fread( green[i], sizeof(char), width, fnGREEN );
   }
   fclose( fnRED );
   fclose( fnGREEN );
   fclose( fnBLUE );
   return true;
}

i tak mi pieknie minal dzien...


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Wyświetl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum Quasi-bimber Strona Główna -> 04 semestr Wszystkie czasy w strefie CET (Europa)
Strona 1 z 1

 
Skocz do:  
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach

fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2005 phpBB Group
Regulamin