![]() |
Datenbank: DBase für Windows • Zugriff über: DataSource, TTable
JPEG in BLOB Feld speichern
Hallo,
da habe ich wieder ein Problem. Es sollen bmp und/oder jpeg Bilder in einem BlobFeld gespeichert werden. Bei bmp mache ich das so, und das funktioniert auch.
Delphi-Quellcode:
Nun habe ich die bei USES jpeg eingefügt.
procedure TForm1.ReadButtonClick(Sender: TObject);
begin with Table1 do Image1.Picture.Assign(FieldByName('Bild')); end; procedure TForm1.WriteButtonClick(Sender: TObject); begin with Table1 do begin table1.Insert; table1.FieldByName('bild').Assign(Image1.Picture); table1.Post; end; end; Wie geht das mit jpeg Bildern? Fritz01 [edit=SirThornberry]Delphi-Tags ergänzt - Mfg, SirThornberry[/edit] |
Re: JPEG in BLOB Feld speichern
Zitat:
|
Re: JPEG in BLOB Feld speichern
Hi MKINZLER,
nein, leider nicht! Hier kommt die Fehlermeldung: TPicture kann nicht zu TBloField zugewiesen wereden. Fritz01 |
Re: JPEG in BLOB Feld speichern
Hallo Fritz01,
mal bitte hier schauen -> ![]() und darin dann diesen -> ![]() Grüße Klaus |
Re: JPEG in BLOB Feld speichern
Kodier doch einfach die jpeg mit base64. Dann musst du dir über den Dateityp keine Gedanken machen. Na und dann dekodieren mit base64 wenn du es liest.
|
Re: JPEG in BLOB Feld speichern
Hallo Fritz,
vielleicht ist dieser Beitrag für dich interessant: ![]() Grüße vom marabu Edit: Link auf Beitrag #5 durch Link auf Beitrag #2 ersetzt. |
Re: JPEG in BLOB Feld speichern
|
Re: JPEG in BLOB Feld speichern
Hallo,
habe hier ![]() Was mache ich da nur falsch?? :wall: Vielleicht weiß da jemand eine Lösung und postet diese. Fritz01 |
Re: JPEG in BLOB Feld speichern
Verwendest du zum Anzeigen ein TDBimage? Damit habe nur schlechte Erfahrungen gemacht, sobald JPEG ins Spiel kam. Darum verwende ich zur Darstellung grundsätzlich TImage.
Grüße Mikhal |
Re: JPEG in BLOB Feld speichern
Hallo Mikhal,
ich habe mich exakt an das Beispiel gehalten, und ich habe TImage verwendet. Habe allerdings Delphi 4, sollte es daran liegen? Fritz01 |
Re: JPEG in BLOB Feld speichern
Es hat wohl weniger mit Delphi 4 zu tun. Für JPG mußt du erst einen Umweg gehen, wie er oben bereits mehrfach angeboten wurde. Als Anhalt folgender Beispielquelltext:
Delphi-Quellcode:
Grüße
var
jpgBild: TJpegImage; bmBild: TBitmap; ... begin ... bmBild := TBitmap.Create; try jpgBild := TJpegImage.Create; try jpgBild.LoadFromFile(Table1.FindField('BildName').AsString); jpgBild.DIBNeeded; bmBild.Assign(jpgBild); finally FreeAndNil(jpgBild); end; Image1.Picture.Bitmap.Assign(bmBild); finally FreeAndNil(bmBitmap); end; ... end; Mikhal |
Re: JPEG in BLOB Feld speichern
Hallo nochmal,
so recht komme ich damit nicht klar, wo der Umweg gemacht werden muß. 1. Bild von Platte nach TImage, 2. von TImage nach BLOB, 3. von BLOB nach TImage Vielleicht hilft mir das weiter. Fritz |
Re: JPEG in BLOB Feld speichern
Wo ist dein Problem, Fritz?
Ich hatte dir in Beitrag #6 einen Link auf einen Thread gegeben in dem du fertigen Code zum Laden und Speichern von JPG Bildern findest. Ich habe mit diesem Code soeben JPG Bilder in einer Visual Dbase Datei geschrieben und gelesen. Wie kann man dir noch helfen? Freundliche Grüße vom marabu |
Re: JPEG in BLOB Feld speichern
Hallo marabu,
ja richtig, wie kann man mir noch helfen. Werde mich mit diesem Thema noch beschäftigen müssen. Da fehlt es sicher in diesem Punkt an entsprechenden Kenntnissen. Vielleicht postest Du mir mal den Code als Procedure, ich möchte nicht abschreiben ohne zu verstehen. Wenn aber sowas funktioniert kann ich es sicher nachvollziehen. Fritz |
Re: JPEG in BLOB Feld speichern
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Fritz,
ich habe dir eine kleine Demo erstellt - die benötigte Tabelle liegt bei. Du kannst über den DBNavigator neue Bilder in die Tabelle aufnehmen, bestehende Bilder ersetzen oder löschen. Ich hoffe du kommst zurecht. Freundliche Grüße vom marabu |
Re: JPEG in BLOB Feld speichern
Hallo marabu,
ein ganz dickes Dankeschön für die Mühe und Hilfe. Natürlich gilt der Dank auch allen Anderen! Habe versucht, Dein Beispiel so wie es ist zu öffnen. Fehlermeldung 'beim erzeugen von Formular: ungültiges StreamFormat. Danach habe ich das ganze neu gemacht und Deinen Code benutzt. Darauf die nächste Meldung: 'Variants.dcu' nicht gefunden und ohne 'Variants' geht da garnichts. Das liegt an Delphi 4, ist ja auch schon etwas älter und ich sollte mir was 'moderneres' anschaffen denke da an D7 prof. Nur woher nehmen schaue schon ständig bei eBay danach. Mit JPEG muß ich mal schaun wie ich da weiter komme, hatte ja bisher genügend Vorschläge unf Hilfe. Diese Gechichte soll am Ende so sein, dass ich ein Bild von der Platte hole, in ein Formular stelle und zum Schluß mit ButtonClick in einer Datenbanktabelle ablegen kann. Es sollte mit .bmp und .jpeg funktionieren. Will mal sehen und nochmals danke. Fritz |
Re: JPEG in BLOB Feld speichern
Hallo Fritz,
nicht aufgeben. Das ungültige Stream-Format entsteht dadurch, dass die neueren Delphi-Versionen die Forms (DFM) als Text speichern, während die älteren Versionen ein Binärformat verwendeten. Damit du meine DFM-Datei laden kannst musst du sie zuerst mit einem Hilfsprogramm namens CONVERT aus deinem Delphi-Bin-Verzeichnis vom Text- in das Binärformat wandeln. Werden dabei Eigenschaften als unbekannt ausgewiesen, dann entferne diese einfach aus der Textdatei. In neueren Delphi-Versionen wurde alle Funktionalität rund um Variants in der gleichnamigen Unit konzentriert, die vorher auf verschiedene Units verteilt war. Schmeiß Variants einfach aus der Uses-Klausel und gut ist. marabu |
Re: JPEG in BLOB Feld speichern
Hallo marabu,
nein, nein aufgeben möchte ich nicht. Deine Sache läuft! Muß nun erst mal den Code studieren und verstehen, um es für mein Vorhaben entsprechend zu ändern. Ich benötige, wie oben schon beschrieben folgendes: Von Datei (Festplatte) nach TImage und von dort mit Click in das BlobFeld schreiben und umgekehrt vom BlobFeld lesen und zurück nach TImage. Werde es wohl schaffen. Ich melde mich dánn wieder. Fritz |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:39 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