Strumień + BMP

0

Witam wszystkich!
Jak napisałem w temacie mam prblem z strumieniowym zapisem/odczytem bitmap.

Chodzi konkretnie o to iż mogę zapisać do pliku dowolną liczbę bitmap jednak gdy próbuję odczytywać dzieje się coś dziwnego. Mianowicie mogę odczytać tylko pierwszą i drugą bitmapę z pliku bo gdy odczytuję którąkolwiek dalszą i prÓÓbUUję ją wyświetlić pojawia się komuniakat iż plik ma nieprawidłowy format.

Czy wie ktoś może o co chodzi?

Z góry THX!

0

Zapisujesz do jednego pliku? To sie nie dziw... Skad kompilator ma wiedziec kiedy zaczyna sie kod nastepnej bitmapy?? lepiej napisz sobie

type 
 THeader  = record
  FName:string[255];
  FSize:int64;
 end;

i potem odczytujesz naglowek (bo on ma stala wielkosc) i wczytujesz dane bitmapy ze strumienia (dlugosc z FSize) a potem kolejny naglowek itp itd :D

0

Wiem o tym co napisałeś. Zapomniałem po prostu napisać że wszystkie bitmapy są identycznego rozmiaru. Dlatego wydaje mi się dziwne że nie chce to działać.

0

Hmm... Ja bym na twoim miejscu zapisywal do plikow po kolei (w ramach debugowania) i sprawdzal po kolei czy kazdy plik zaczyna sie od naglowka bitmapy. Jesli nie to bym sprawdzil czy poprzedny plik nie konczy sie np. pierwszym bajtem naglowka bitmapy... I tak dalej... Wiem ze nudna praca, ale takie zadanie progrmaisty... :P
Jesli faktycznie gdzies jest takie "przesuniecie" to znaczy ze sie pomyliles przy rozmiarze odczytu

0

Gdybym popełnił błąd w podaniu rozmiaru pliku czy pozycji w stumieniu to nie mógł bym odczytać żadnej z bitmap. Ja natomiast mogę zawsze dwie pierwsze. W dodatku błąd nie miał prawa wystąpić tylko przy którejś bitmapie ponieważ zapis jest przeprowadzany zawsze tą samą procedurą gdzie rozmiar jest stałą a pozycja stumienia jest wyliczana poprzez pomnożenie rozmiaru przez licznik w pętli. W takiej sytułacji wydaje mi się błąd musi tkwić gdzieś indziej.

0
  1. Po co wyliczasz pozycje w strumieniu? Przeciez po zapisaniu danych automatycznie pozycja jest ustawiana na koncu zapisanych danych.
  2. Dzialaloby. Ja sie bawilem nad zapisem skompresowanych obrazkow (miniaturek) do pliku i cos tam zle na poczatku zrobilem i plik wynikowy byly to wszystkie miniatury zapisane razem, z duza iloscia innych danych (jak naglowki itp) i mimo tego pierwsza(jedyna prawdidlowa) miniatura sie wyswietlala.
0

Dobra sam se poradze.

1 użytkowników online, w tym zalogowanych: 0, gości: 1