Einzelnen Beitrag anzeigen

Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#3

Re: Bitmap speichern mit File of MyRecord

  Alt 22. Sep 2007, 16:54
Dein Bitmap was du versuchst zu speichern ist im eigentlichem Sinn sur ein Zeiger auf einen
bestimten Punkt im Speicher.
Wenn du nun dein Bitmap in die Datei schreiben möchtest busst du wohl oder übel die realen
RGB-Daten deines Bitmaps speichern. Baue dir dazu ein Array, lies die RGB-Daten über Scanline ein
und speicher dann das Array. Die Grösse des must du nun auch speichern.

Du kannst natürlich auch einen anderen Weg nutzen, TBitmap unterstützt das speichen in Streams.
Das ist etwas eleganter und einfacher.

Das sähe in etwa so aus:
Delphi-Quellcode:
procedure ...
var
  nd: rNetDevice;
  Temp: TMemoryStream;
  i: integer;
  B: Byte;
begin
  nd.Typ := 1;
  nd.PositionX := 2;
  nd.PositionY := 3;

  Temp := TMemoryStream.Create;
  Image1.Picture.Bitmap.SaveToStream(Temp);

  nd.BitmapLength := Temp.Size;
  SetLength(nd.Bitmap, nd.BitmapLength + 1);

  Temp.Position := 0;
  for i := 0 to nd.BitmapLength -1 do
  begin
    Temp.Read(B, 1);
    nd.Bitmap[i] := B;
  end;

  Temp.Free;
end;
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat