AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Wie speichere ich ein DB-Blob in ein TImage

Ein Thema von LingNeu · begonnen am 9. Sep 2014 · letzter Beitrag vom 13. Sep 2014
Antwort Antwort
LingNeu

Registriert seit: 18. Dez 2006
164 Beiträge
 
Delphi 7 Enterprise
 
#1

AW: Wie speichere ich ein DB-Blob in ein TImage

  Alt 10. Sep 2014, 10:54
@mkinzler,
meistens ist das ein Jpg-Bild. In der Uses ist jpeg eingebunden.
ich habe auch Folgendes schon probiert ... ohne Erfolg.
gruss LingNeu

Delphi-Quellcode:
procedure TForm1.btn_ObjektClick(Sender: TObject);
var sname1,sname2: string;
ms: TMemoryStream ;
begin
ed_Name1.text := TDB_O['oName1']; //vorhandene DB-Daten in TextEdit kopieren
ed_Name2.Text := TDB_O['oName2']; //vorhandene DB-Daten in TextEdit kopieren
//Jetzt noch DB-Bild in ein TImage (img_Objekt) bringen
if not VarIsNull(TDB_O['oBild']) then begin
   ms := TMemoryStream.Create ;
   TBlobField(TDB_O.FieldByName('oBild')).SaveToStream(ms);
   ms.Position := 0;
   img_Objekt.Picture.Graphic.LoadFromStream(ms);
   ms.Free ;
end;
end;
@Perlsau,
danke für das Beispiel.
Leider bring ich den Code nicht zum Laufen. Trotzdem danke!
Wenn man denkt, dann denkt man nur, das man denkt!
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.660 Beiträge
 
Delphi 12 Athens
 
#2

AW: Wie speichere ich ein DB-Blob in ein TImage

  Alt 10. Sep 2014, 10:57
Wenn Du die Grafik aus dem Stream mal auf der Festplatte abspeicherst (ms.SaveToFile), erhältst Du dann eine gültige Datei?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.384 Beiträge
 
Delphi 12 Athens
 
#3

AW: Wie speichere ich ein DB-Blob in ein TImage

  Alt 10. Sep 2014, 11:12
LoadFromFile erstellt die passende TGraphic-Instanz im Picture.Graphic, anhand er Dateiendung.
Es gibt keinen Code, welcher sich den Dateiinhalt ansieht, weswegen man bei LoadFromStream auch immer "selber" dafür sorgen muß, daß auch das richtig Grafikfirmat geladen ist, wo man dann das Bild reinladen kann.

Wenn es ein JPeg ist, dann mußt du selber erstmal ein TJpegImage (oder wie das heißt) erstellen und dem Graphic zuweisen, bevor da das Bild rein kann.
Nur für sowas wie Bitmap und Icon gibt es Property im Picture, welche das Format automatisch erstellen.

Alternativ kannst du Picture.LoadFromFile verwenden und muß dafür aber die Datei erstmal auf die Festplatte speichern (mit der richtigen Dateiendung).
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#4

AW: Wie speichere ich ein DB-Blob in ein TImage

  Alt 11. Sep 2014, 00:07
@Perlsau, danke für das Beispiel. Leider bring ich den Code nicht zum Laufen. Trotzdem danke!
Das ist ja mal wieder eine äußerst aussagekräftige Fehlermeldung
Was genau bedeutet "bring ich den Code nicht zum Laufen". Der Code ist feherlfrei & wird bei mir zigfach eingesetzt.

Davon abgesehen ist die Frage falsch gestellt, die eigentlich lauten sollte: Wie zeige ich ein DB-Blob in einem TImage an? Denn in diesem TImage kannst du nichts wirklich speichern, sondern nur was anzeigen. Bei Programmende ist das, was in dieser Komponente angezeigt wurde, wieder weg. Gespeichert wird auf einen Datenträger bzw. in eine Datenbank.

Geändert von Perlsau (11. Sep 2014 um 00:09 Uhr)
  Mit Zitat antworten Zitat
LingNeu

Registriert seit: 18. Dez 2006
164 Beiträge
 
Delphi 7 Enterprise
 
#5

AW: Wie speichere ich ein DB-Blob in ein TImage

  Alt 13. Sep 2014, 06:25
hallo zusammen,
vielen dank erstmal für eure Hinweise und die Infos.
Die Antwort hat etwas gedauert, da ich unterwegs war.
Meine Lösung sieht jetzt so aus. Ich speichere das Bild auf die Platte - ist ein Jpg. Später hole ich mir das Bild dann mit LoadFromFile. Fertig.
Da ich momentan auch nicht die Zeit habe, hier zu experimentieren ist diese Lösung ok.
Es grüßt euch
LingNeu
Wenn man denkt, dann denkt man nur, das man denkt!
  Mit Zitat antworten Zitat
Antwort Antwort


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 21:09 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-2025 by Thomas Breitkreuz