Ich hatte bis eben gerade ein Problem, es nun gelöst, aber nicht ganz begriffen wieso es jetzt geht. Kann mir einer von euch Cracks eine Hinweis geben?
Meine Applikation verwendet
GDI+ (unter DXE2,Win7) und versucht einen JPG-Stream in eine GPBitmap zu laden.
Folgender Code (wie er überall im Netz zu finden ist und funktionieren sollte) funktioniert bei mir nicht:
Delphi-Quellcode:
procedure TfrmMain.TestProc(Jpegdata: TMemoryStream);
var
Image : IGPBitmap;
Graphics : IGPGraphics;
SA : TStreamAdapter;
begin
Graphics := TGPGraphics.Create(imgVorschau.Canvas.Handle);
try
sa := TStreamAdapter.Create(JpegData);
Image := TGPBitmap.Create(sa);
Graphics.DrawImage(Image, 0, 0, Image.Width, Image.Height);
except
...
end;
end;
Folgender Code schon, aber wieso?
Delphi-Quellcode:
procedure TfrmMain.TestProc(Jpegdata: TMemoryStream);
var
Image : IGPBitmap;
Graphics : IGPGraphics;
SA : IStream;
begin
Graphics := TGPGraphics.Create(imgVorschau.Canvas.Handle);
try
sa := TStreamAdapter.Create(JpegData);
Image := TGPBitmap.Create(sa);
Graphics.DrawImage(Image, 0, 0, Image.Width, Image.Height);
except
...
end;
end;
Einzig hab ich den SA von TStreamAdapter auf IStream geändert, aber ich erzeuge nach wie vor den TStreamAdapter auf diese Variable.
Ist das Zufall, dass das jetzt bei mir läuft (und dann früher oder später doch wieder crashed) oder geht das so in Ordnung?
Danke für Hints!