Guten Abend !
Ich möchte gerne, eine Reihe von BitMaps in einer Datei zusammenfassen:
Delphi-Quellcode:
{In diesem array Speicher ich die größen der Bilder}
TSkinSize = array[0..10] of int64;
SkinSize : TSkinSize;
{Bilder speichern}
procedure TForm1.btnSaveClick(Sender: TObject);
var
fs : TFileStream;
ms : TMemoryStream;
i, SizeOld : integer;
BitMap : TBitMap;
begin
if SaveDialog1.Execute then
begin
ms := TMemoryStream.Create;
BitMap := TBitMap.Create;
SizeOld := 0;
for i := 0 to 10 do
begin
// lvAnzeige : TListView
BitMap.LoadFromFile(lvAnzeige.Items.Item[i].SubItems[1]);
BitMap.SaveToStream(ms);
SkinSize[i] := ms.Size - SizeOld;
SizeOld := ms.Size;
end;
fs := TFileStream.Create(SaveDialog1.FileName, fmCreate);
try
fs.Write(SkinSize,SizeOf(SkinSize));
ms.Seek(0,soFromBeginning);
fs.CopyFrom(ms,ms.Size);
finally
fs.free;
end;
ms.Free;
BitMap.free;
end;
end;
{Bilder laden}
f := 0;
ms := TMemoryStream.Create;
fs := TFileStream.Create('C:\Super.skn',fmOpenRead);
fs.Read(SkinSize,SizeOf(TSkinSize));
for i := 0 to 7 do
inc(f,SkinSize[i]);
fs.Seek(SizeOf(TSkinSize) + f, sofromBeginning);
ms.CopyFrom(fs, SkinSize[8]);
Image1.Picture.Bitmap.LoadFromStream(ms);
Aber dummerweise bleibt das Image leer !?
Kann mir jemand sagen was ich falsch mache ?
[Edit]
Delphi-Quellcode:
vor:
Image1.Picture.Bitmap.LoadFromStream(ms);
muss noch:
ms.seek(0,sofromBeginning);
[/Edit]