Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - JPG STream Fehler?


Minime - Mi 26.07.06 02:43
Titel: JPG STream Fehler?
ich bekomme bei folgendem code


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
 
var 
fs : TFileStream
begin 
   
  fs := tfilestream.Create('Test.jpg',fmCreate);
  s := TMemoryStream.Create;         
  jpg := Tjpegimage.Create;    
  
  bitmap := TakeScreenShot();        
  jpg.CompressionQuality := Quality;     
  jpg.Compress;                          
  jpg.Assign(bitmap);                         
  jpg.SaveToStream(fs);                   
                                          

    S.Write('Bild', length('Bild') );
    S.CopyFrom( fs, fs.Size );   -> EReadError - Warum? egal ob Memory oder sonstewas steram;

...
...

    bitmap.Free;
    jpg.Free;
    fs.Free;


immer einen EReadError aber weiß nicht warum (macht die JPG-Routine was falsch?)


Neidhard von Reuental - Mi 26.07.06 06:56

Ich denke mal das Du da die Reihenfolge verweckselst.
S.CopyFrom( fs, fs.Size );
Damit willst Du auf FS Daten in S übertragen. Müßtest also FS.CopyFrom(S,S.Lenght); schreiben.
Dann solltest Du auch die Leseposition von S auf den Anfang setzen.