Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi JPEG in BLOB Feld speichern (https://www.delphipraxis.net/70997-jpeg-blob-feld-speichern.html)

mikhal 8. Jun 2006 12:24

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:
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;
Grüße
Mikhal

Fritz01 8. Jun 2006 18:43

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

marabu 8. Jun 2006 19:50

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

Fritz01 8. Jun 2006 22:23

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

marabu 9. Jun 2006 08:08

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

Fritz01 9. Jun 2006 15:34

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

marabu 9. Jun 2006 18:39

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

Fritz01 10. Jun 2006 18:44

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 21:48 Uhr.
Seite 2 von 2     12   

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