Zapisywanie i odczytywanie tablicy z bitmapami.

0

Witam.
Pisze program do robienia animacji... Rekord z dynamiczną tablica Bitmap :) Zapisywanie chyba działa OK ale z odczytem gorzej.

type TProject = record
    Frames: integer;
    Frame: array of TBitmap;
  end;

A tu procedura:

var FS: Tfilestream;
  size:int64;
  mem: TMemoryStream;
  i:integer;
begin
  mem := TMemoryStream.Create;
  fs := tfilestream.Create(edit1.text, fmCreate); //fmOpenRead
  fs.WriteBuffer(Project, sizeof(project));
  for i := 0 to project.Frames - 1 do
  begin
    mem.clear;
    project.frame[i].SaveToStream(mem);
    size := mem.Size;
    fs.WriteBuffer(size, sizeof(size));
    mem.SaveTostream(fs);
  end;
  fs.free;
  mem.free;
end;
0

w ogóle zle to robisz :P Bo niby skad ma progs potem wiedziec gdzie konczy sie pierwsza a zaczyna nastepna bitmapa? Zrob to tak: zapisuj w formacie Rozmiar1|Dane1|Rozmiar2|Dane2|Rozmiar3|Dane3 etc etc. I potem odczytujesz rozmiar (przyjmijmy ze do zmiennej r), czytasz dane o dlugosci r a potem odczytujesz kolejny rozmiar i tak az do end of file :)

Tu masz przyklad: http://migajek.com/ekspert/indeksowanie_miniatur.rar
// ^^ Powyzszy kod jest zupelnie niekomentowany bo pisalem na potrzeby wlasne ale moze ktos cos zrozumie :P

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