AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Blob per Stream aus DB lesen und in Imageview anzeigen
Thema durchsuchen
Ansicht
Themen-Optionen

Blob per Stream aus DB lesen und in Imageview anzeigen

Ein Thema von Echtet · begonnen am 16. Jul 2008 · letzter Beitrag vom 16. Jul 2008
 
Echtet

Registriert seit: 5. Jan 2004
Ort: Dortmund
21 Beiträge
 
Delphi XE3 Professional
 
#1

Blob per Stream aus DB lesen und in Imageview anzeigen

  Alt 16. Jul 2008, 10:58
Datenbank: Firebird • Version: 2 • Zugriff über: IBX
Hallo,

Ich möchte aus einem DB-Feld (Firebird) mittels Stream ein Bild (JPG) auslesen, um es in einer Komponente ImageView32 (Graphics32) anzeigen zu lassen.
Bisher bin folgenden Weg gegangen, der auch funktionierte:
Bild aus DB exportieren (SaveToFile), anschließend wieder in Image importieren (LoadFromFile).
Ich möchte aber nun nicht mehr den Umweg über einen Dateiexport/-Import gehen, sondern mit Streams arbeiten.

nach Recherche im Forum habe ich folgenden Lösungsansatz gefunden:

Delphi-Quellcode:
procedure TfrmZoom.FormShow(Sender: TObject);
var
s: TMemoryStream;
begin
    Screen.Cursor := crHourGlass;
    s := TMemoryStream.Create;
    TBlobField(DataModule1.DataSourceZugangsdaten.DataSet.FieldByName('SCREENSHOT')).SaveToStream(s);
    s.Position := 0;
    ImageView32.Bitmap.LoadFromStream(s);
    s.Free;
    Screen.Cursor := crDefault;
end;
In der Zeile "ImageView32.Bitmap.LoadFromStream(s);" erhalte ich folgende Exception:
... EInvalidGraphic ... Bitmapimage is not valid ...

Muss ich dem Stream sagen, dass er ein JPG-Bild enthält? Oder mache ich einen anderen Fehler?

Mein alter Code (Dateiexport/-Import) lautetet folgendermaßen:
Delphi-Quellcode:
procedure TfrmZoom.FormShow(Sender: TObject);
begin
    Screen.Cursor := crHourGlass;
    TBlobField(DataModule1.DataSourceZugangsdaten.DataSet.FieldByName('SCREENSHOT')).SaveToFile(AktuellerProgrammPfad + 'temp.jpg');
    ImageView32.Bitmap.LoadFromFile(AktuellerProgrammPfad +'temp.jpg');
    Screen.Cursor := crDefault;
end;
Danke für eure Antworten.

Gruß
echtet
Thimo Echtermann
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz