Thema: Delphi Probleme mit Streams

Einzelnen Beitrag anzeigen

Benutzerbild von Legolas
Legolas

Registriert seit: 28. Sep 2003
Ort: Frankfurt am Main
72 Beiträge
 
Delphi 2005 Personal
 
#6

Re: Probleme mit Streams

  Alt 28. Sep 2003, 23:25
Soooooooooooooo,

an alle die Interesse daran haben, diese Procedure ist jetzt voll funktionstüchtig und tut das was sie soll:

Delphi-Quellcode:
procedure StoreJPEGImage(Table: TTable; Field: STRING);
var s : TBlobStream;
    fs: TFileStream;
    ms: TMemoryStream;
    bmp : TBitmap;
    jpeg: TJPEGImage;
begin
  bmp := tbitmap.create;
  jpeg := tjpegimage.create;
  fs := TFileStream.Create(Haupt.CoverDialog.FileName, fmOpenRead);
  s := TBlobStream.create(Table.FieldByName(Field) AS TBlobField, bmWrite);
  ms:=TMemoryStream.Create;
  try
    jpeg.LoadFromStream(fs);
    bmp.assign(jpeg);
    If jpeg.width>jpeg.Height then
    begin
      bmp.width:=400;
      bmp.height:=250;
    end else
    begin
      bmp.width:=250;
      bmp.Height:=400;
    end;
    bmp.canvas.StretchDraw(Rect(0,0,bmp.width,bmp.height),jpeg);
    jpeg.compressionquality := 50;
    jpeg.assign(bmp);
    jpeg.SaveToStream(ms);
  finally
    bmp.free;
    jpeg.free
  end;
  ms.Position:=0;
  s.CopyFrom(ms, ms.Size);
  fs.free;
  s.Free;
end;
Da ich sie speziell an meine Bedürfnisse angepasst und in einer seperaten Unit ausgelagert habe muß sie natürlich noch an gewissen Punkten angepasst werden.

Wer Verbesserungvorschläge in Bezug auf Geschwindigkeit und Optimierung (oder sonstige Ideen) hat kann sie hier gerne Vorstellen.

Grüße Legolas
Grüße Legolas

Wissen ist Macht.
Wir wissen nichts, macht nichts.
  Mit Zitat antworten Zitat