Delphi-PRAXiS
Seite 5 von 6   « Erste     345 6      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Bild aus Datenbank in TImage Komponente (https://www.delphipraxis.net/154401-bild-aus-datenbank-timage-komponente.html)

DeddyH 13. Sep 2010 10:27

AW: Bild aus Datenbank in TImage Komponente
 
Das hatten wir doch schon. Dann erstelle halt eine Grafik im passenden Format (TBitmap, TJPEGImage or whatever), lade dort über den Stream den BLOB-Inhalt rein und weise sie dann dem Image zu.

[edit] Angenommen, in den BLOBs stehen Bitmaps:
Delphi-Quellcode:
        if qryGetDAtaBild.BlobSize > 0 then
        begin
          stBild := TMemoryStream.Create;
          try
            qryGetDAtaBild.SaveToStream(stBild);
            bmp := TBitmap.Create;
            try
              bmp.LoadFromStream(stBild);
              Frames.Image1.Picture.Assign(bmp);
            finally
              bmp.Free;
            end;
          finally
            stBild.Free;
          end;
        end;
Ungetestet, deshalb ohne Gewähr. [/edit]

Metallicwar 13. Sep 2010 10:50

AW: Bild aus Datenbank in TImage Komponente
 
*bin zu doof* :*(

Delphi-Quellcode:
stBild: TStream;
jpgBild: TJPEGImage;
Delphi-Quellcode:
 if qryGetDAtaBild.BlobSize > 0 then
        begin
          stBild := TMemoryStream.Create;
          jpgBild := TJPEGImage.Create;  // Grafik im JPEG Format erstellen
          try
            qryGetDAtaBild.SaveToStream(stBild);
            pngBild.SaveToStream(stBild); // BLOB Inhalt reinladen
            Frames.Image1.Picture := jpgBild; // Image zuweisen
          finally
            stBild.Free;
          end;
        end;
Inkompatible Typen Picture und JPEGImage

DeddyH 13. Sep 2010 10:52

AW: Bild aus Datenbank in TImage Komponente
 
Siehe mein Edit (hat sich wohl mit Deinem Post überschnitten).

Metallicwar 13. Sep 2010 11:06

AW: Bild aus Datenbank in TImage Komponente
 
also Programm läuft, nur werden keine Bilder angezeigt..
wenn ich anstatt TBitmap TJPEG nehm, meckert er mir wieder rum ... JPEG Fehler #42.....

mhhm....

DeddyH 13. Sep 2010 11:07

AW: Bild aus Datenbank in TImage Komponente
 
Sind es denn auch JPEGs in der Datenbank?

[edit] Müssen es wohl, sonst würde der Umweg über die Datei ja nicht funktionieren. Evtl. muss man vor dem LoadFromStream noch die Position setzen. Wie sieht es so aus?
Delphi-Quellcode:
 if qryGetDAtaBild.BlobSize > 0 then
        begin
          stBild := TMemoryStream.Create;
          try
            pngBild := TJPEGImage.Create; // Grafik im JPEG Format erstellen
            try
              qryGetDAtaBild.SaveToStream(stBild);
              stBild.Position := 0;
              pngBild.LoadFromStream(stBild); // BLOB Inhalt reinladen (SaveToStream in LoadFromStream geändert)
              Frames.Image1.Picture.Assign(pngBild); // Image zuweisen
            finally
              pngBild.Free;
            end;
          finally
            stBild.Free;
          end;
        end;
[/edit]

Metallicwar 13. Sep 2010 11:12

AW: Bild aus Datenbank in TImage Komponente
 
ja sind auch JPEG in DB.

DeddyH 13. Sep 2010 11:14

AW: Bild aus Datenbank in TImage Komponente
 
Klappt es denn mit dem Code aus meinem letzten Edit?
BTW: Wieso eigentlich pngBild, wenn es eine JPEG ist? Finde ich etwas verwirrend.

Metallicwar 13. Sep 2010 11:18

AW: Bild aus Datenbank in TImage Komponente
 
aaaaaah, es funktioniert.

lag es jetzte an folgender Zeile? :
Delphi-Quellcode:
stBild.Position := 0;
Kannst du mir bitte noch kurz sagen, was diese Zeile genau bewirkt?

DeddyH 13. Sep 2010 11:21

AW: Bild aus Datenbank in TImage Komponente
 
Ich denke, es lag vermutlich eher daran, dass Du statt LoadFromStream SaveToStream geschrieben hattest. Das Setzen der Position des Streams spult quasi an den Anfang zurück, ich bin nicht ganz sicher, ob das bei LoadFromStream automatisch gemacht wird. Eigentlich wäre das logisch, aber ich kann gerade nicht nachsehen. Im Zweifel einfach die Zeile auskommentieren und schauen, was passiert ;)

Metallicwar 13. Sep 2010 11:26

AW: Bild aus Datenbank in TImage Komponente
 
also die Zeile
Delphi-Quellcode:
stBild.Position := 0;
wird benötigt, ansonsten gibts wieder den Fehler #42.

Naja ok, das Problem wäre gelöst.
Ich bedank mich für die Geduld und eure Hilfe :)

mfg


P.S. Jetzte hab ich nur noch das Problem mit dem "Formular zentriert ausdrucken" vor mir :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:36 Uhr.
Seite 5 von 6   « Erste     345 6      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz