Thema: Delphi Bilder aus Stream Laden

Einzelnen Beitrag anzeigen

Pro_RJ

Registriert seit: 16. Apr 2008
146 Beiträge
 
#4

Re: Bilder aus Stream Laden

  Alt 10. Jan 2010, 20:37
Danke für die schnellen Antworten:

Zitat von Alter Mann:
Hi,

versuche es mal so:
Delphi-Quellcode:
procedure TXXXX.ReadImage(aFieldName : String);
var
  BS : TStream;
  MS : TMemoryStream;
begin
  BS := Query.CreateBlobStream(Query.FieldByName(aFieldName), bmRead);
  BS.Seek(0, soFromBeginning);
  MS := TMemoryStream.Create;
  MS.CopyFrom(BS, BS.Size);
  MS.Position := 0;
  Image321.Bitmap.LoadFromStream(MS);
  MS.Free;
  BS.Free;
end;
Alter Mann
Das Ist ja im Prinzip das gleiche wie ich es auch habe, nur, das ich per TStream und nicht per TMemoryStream zugreife. --> ich habs gesetztet aber das ergebniss ist leider noch das gleiche


Zitat von alleinherrscher:
Ich würde keine JPGs per bitmap.loadfromfile bzw. bitmap.loadfromstream laden, da es sich hier, wie der name schon vermuten lässt, eigentlich um Bitmaps handelt. Mag sein, dass Delphi so intelligent ist, und anhand der Dateiendung bei loadfromfile erkennt, dass es sich um ein jpg handelt.

Aber ich würde den umweg über ein TJPEGImage gehen, und zunächst das Bild per loadfromstream in das TJPEGImage laden. Anschließend würde ich dann die canvas auf das Bitmap kopieren. Das ist meiner Meinung nach der korrekte weg.

Grüße,
Michael

[edit]

Quasi so:
Delphi-Quellcode:
  
function JPEGtoBMP(FS:TFilestream):tbitmap;
var jpeg:tJPEGImage;
begin
  
 Jpeg:= TJPEGImage.Create;
  try
    jpeg.LoadFromStream(FS);
    result:= TBitmap.Create;
    result.Assign(jpeg);
  finally
    jpeg.Free
  end;

end;

Das werde ich gleich mal Testen. Betrifft das JPG und JPEG?
  Mit Zitat antworten Zitat