Einzelnen Beitrag anzeigen

Benutzerbild von igel457
igel457

Registriert seit: 31. Aug 2005
1.622 Beiträge
 
FreePascal / Lazarus
 
#3

Re: jpeg aus stream laden

  Alt 2. Nov 2005, 13:26
Nein
daran liegt es nicht.

Ich hab etwas rumprobiert und den Fehler behoben.

Aus irgend einem Grund lädt dieses blöde TJPEG image aus dem Stream, und lädt, und lädt, und lädt.

Da ist mir dann die Idee gekommen die Größe des JPEGs mit in die Datei zu Speichern.

Hier mal der Sourcecode zum Speichern:
Delphi-Quellcode:
      if materials.Items[i].fileext = 'jpgthen
      begin
        ms := TMemoryStream.Create;
        jpg := TJpegImage.Create;
        jpg.Assign(materials.Items[i].picture.Graphic);
        jpg.SaveToStream(ms);
        big := ms.Size;
        ms.Free;
        filestream.Write(big,sizeof(int64)); //<-- Ersteinmal die größe in meinen Stream speichern
        jpg.SaveToStream(filestream);
      end;
Dann einfach Laden:
Delphi-Quellcode:
      if (material.fileext = 'jpg') or (material.fileext = 'jpeg') then
      begin
        filestream.Read(big,sizeof(int64));
        ms := TMemoryStream.Create;
        ms.CopyFrom(filestream,big);
        jpg := TJpegImage.Create;
        ms.Position := 0;
        jpg.LoadFromStream(ms);
        material.picture.Assign(jpg);
        ms.Free;
      end;
Die Lösung ist zwar nicht die Eleganteste, geht aber.

Igel457
Andreas
  Mit Zitat antworten Zitat